JavaScript基础知识梳理----数据类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript基础知识梳理----数据类型相关的知识,希望对你有一定的参考价值。
JavaScript数据类型
javascript的数据类型有六大类:
Undefined、null、string、number、object、boolean
1.Undefined
---使用var声明变量但未初始化,
对未初始化的变量或尚未定义的变量使用typeof运算符均会返回undefined
问题: 区分空对象指针和尚未定义的变量
使用typeof检测,尚未定义的变量返回的是undefined,而空对象指针返回的是object
2.Null
逻辑上null表示一个空对象指针
使用typeof检测时会返回object
Null和undefined的关系:
Undefined派生于null因此在使用“==”进行比较时会返回true
Tip:声明空对象时应将其赋值为null
3.String
由0个或16个Unicode字符组成
特性:
单引号和双引号不得交叉使用
使用 .length属性可以访问字符串的长度(转义序列表示一个字符,无法返回双字节字符长度)
字符串一旦被创建,则其值不可改变,若要改变必须销毁原有的字符串
转义序列:
\n 换行
\t 制表符
\b 空格
\r 回车符
\f 分页符
\\ 斜杠\
\’ 单引号’
\” 双引号”
类型转换:
1.tostring()---使用类型(number,string,boolean,object),可以使用参数,表示进制,默认是10进制。
2.String()----使用类型(六大数据类型)
3.eval()---计算字符串表达式的值并以数值形式返回
将一个值转换成一个字符串有两种方法,一是使用toString()方法,二是使用转型函数String()。下面是一些需要注意的问题:
1,大多值都有toString()方法,null和undefined是没有的。
2,对于字符串型的值也可以使用toString()方法,它会返回该字符串的一个副本。
3,toString()方法可以传递一个参数,表示数值的基数。
- var t = 8;
- t.toString(2); //1000
默认情况下 参数是10。要说明的是对于非数值类型(boolean,string等)设置toString()的参数是无效的,
- var t ="8";
- t.toString(2); //8, 返回字符串的副本;
4,任何值都可以使用String()方法。它的过程是这样的
首先,如果值有toString()方法,那么则使用该方法(无参数)。
其次,那就是该值没有toString()方法,那就是 null 返回 "null",undefined返回"undefined";
- var a=null;
- String(a); //"null"
eval函数的原义是 使之执行 这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
假设后台输出json字符串response 前台使用 var json = eval("(" + response + ")");
如果严谨点 我们可以加一个判断
var jsonData = "";
if (typeof (data) === "string" && data != "null") { if (data == "") data = "{}"; jsonData = eval("(" + data + ")"); }
这时 我们认为 eval的作用就是将json string转为js对象
能够用eval实现的功能都可以用替代的方式实现 比如JSON.parse(JSON对象解析),比如new Function()(执行特定代码)
大部分不支持使用eval的原因有: 1、性能不好 2、不安全 3、产生混乱的代码逻辑
4.Boolean
true为真,false为假,
true不一定等于1,false不一定等于0
使用boolean()进行转换:
转换为true-- 1.任何非空字符串
2.任何非空值
3.任何非空对象
转换为false--1.空字符串
2.NaN和0
3.null及undefined
5.Number
进制: 十进制
八进制--前缀 0
--有效序列 0~7
--超出范围-前缀的0被忽略,后续数值以十进制计数
十六进制--前缀 0x
--有效序列 0~9 A~F
浮点数:小数点后至少一位数字
最高精度17位小数
缺陷--存在舍入误差,无法测试特定的浮点数
NaN:Not a number(非数值)
--任何涉及NaN的操作都将返回NaN,NaN和任何数值都不相等,包括自身。
检测: isNaN()---可转换为数值 false
---不能转换为数值 true
数值转换:Number()
Boolean--(true为1,false为0);
Null--0;
Undefined--NaN;
String--(
只包含数字:十进制,前面如果有0则被忽略
包含有效浮点格式:浮点数值,前导0被忽略
包含有效的十六进制:相同大小的十进制数
空字符串: 0
其他格式:NaN
)
object--( valueOf() , toString() )
6.Object
定义:一组数据或功能的集合
声明:var o=new Object()
属性与方法:
1.Constructor 保存用于创建当前对象的函数
2.hasOwnProperty(propertyName) 检测给定属性在当前对象实例中是否存在
3.isPrototypeOf(object) 检测传入的对象是否是另一个对象的原型
4.propertyIsEnumerable(propertyName) 检测给定属性是否可用for-in语句枚举
5.toLocalString() 返回对象的字符串表示,该字符串与执行环境的地区对应
6.toString() 返回对象的字符串表示
7.valueOf() 返回对象的字符串、数值、或布尔值表示;通常与toString()值相同
以上是关于JavaScript基础知识梳理----数据类型的主要内容,如果未能解决你的问题,请参考以下文章