美文网首页
JavaScript数据类型

JavaScript数据类型

作者: 闪电西兰花 | 来源:发表于2016-10-26 16:36 被阅读0次
1.ECMAScript中的5种简单数据类型
  • Undefined:只有一个值undefined,表示变量只被声明,没有被初始化,也就是有这个指针,但指针没有指向任何空间
var mes;
console.log(typeof mes);        //undefined
  • Null:只有一个值null,表示一个空对象指针,因此用typeof检测null值时返回object;如果定义的变量将来准备用于保存对象,那么最好将该变量初始化为null
  • Boolean:有2个值,分别是truefalse,常用于条件测试中
  • Number:整数、浮点数、十六进制等都统一为该类型,需要注意的是Number类型是有范围的;还有NaN表示非数值(Not a Number),这个数值表示一个本来要返回数值的操作数未返回数值的情况;任何涉及NaN的操作都返回NaNNaN与任何值都不相等,包括本身
  • String:由零或多个16位Unicode字符组成的字符序列;可以用单引号或双引号表示,没有区别,匹配即可;任何字符串的长度都可以通过其length属性获得
//ECMAScript中的字符串是不可变的
//要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量
var mes = 'Java';
mes = mes + 'Script';
console.log(mes);             //JavaScript
//首先创建一个能容纳10个字符的新字符串
//然后在这个字符串中填充'Java'和'Script'
//最后销毁原来的字符串'Java'和'Script'
String类型包含一些特殊的字符字面量(转义字符):
\n: 换行
\r: 回车
\t:水平制表符
\\:\
2.ECMAScript中的复杂数据类型
  • Object:JS的核心概念,JS的所有数据都可以被视为对象,即一种无序的数据集合,由若干个“键值对”(key-value)构成,key我们称为对象的属性,value可以是任何JavaScript类型,甚至可以是对象
3.typeofinstanceof的作用和区别
  • typeof:一个操作符;用于获取一个变量的类型,一般只能返回如下结果:"number","boolean","string","function","object","undefined";但是当遇到Array,Null等特殊对象时,typeof只会返回"object",这就是typeof的局限性
typeof(1);         //"number"
typeof("2");       //"string"
typeof(new Object());      //"object"
  • instanceof:用于判断某个变量是否是某个对象的实例,返回值为布尔值,instanceof的内部机制是:每个实例都有proto隐藏属性,instanceof的时候会拿实例的proto属性与构造函数的prototype比较是否相同,因此写法也和typeof不同
var a = [1,2,3];
var b = function(){};
console.log(a instanceof Array);   //true
console.log(b instanceof Function);   //true
4.数值转换
  • Number():可用于任何数据类型;规则相当复杂而且不合理,几乎不使用
  • parseInt()parseFloat():用于将字符串转换成数值;
  • parseInt()parseFloat()规则如下:
    • 忽略字符串前面的空白字符,找到第一个非空白字符
    • 如果第一个字符不是负号(-)或者数字返回NaN(转换空字符串返回NaN)
    • 如果是继续解析,直到非数字字符为止
    • 0开头会当做八进制,0x开头会当做十六进制,但是可以指定第二个参数指定基数
  • parseInt()parseFloat()区别:
  • 字符串中第一个小数点是有效的
  • 始终忽略前面的零
parseInt(" ");                          //NaN
parseInt("1234blue");                   //1234
parseInt("22.5");                       //22
parseFloat("22.5");                     //22.5
parseFloat("0909.5");                   //909.5

相关文章

网友评论

      本文标题:JavaScript数据类型

      本文链接:https://www.haomeiwen.com/subject/hgaiyttx.html