数据类型:
ECMAScript中有五种简单数据类型(String、Number、Boolean、Null、Undefined)以及一种复杂数据类型(Object)
typeof操作符用于检测给定变量的数据类型,可能会返回一下字符串
-"undefined" 值为定义
-"boolean" 值为布尔值
-"string" 值为字符串
-"number" 值为数值
-"object" 值为对象或者null
-"function"值为函数
String 字符串
var a = "word";
由零或多个16位Unicode字符组成的字符序列,即字符串。可以用双引号或单引号表示,两者没有区别,但是不可混用。
字符字面量又称为转义序列,用于表示非打印字符,或者具有其他用途的字符。例如 \n 表换行 \\ 表示斜杠
注意:字符串是不可改变的,一经创建,值不可以再变
如何强制转换为String ?
方法1:使用 toString() 方法,Boolean、Number、Objec以及String(其本身)具有toString() 方法 ,但是Null 和Undefined没有
var a = 123; var b = a.toString(); alert(typeof b ); //数据类型为String;"123"
方法2:使用转型函数String() ,六种基本数据类型全部使用,对于Boolean、Number、Objec以及String来讲,作用与toString()一样,对于Null和Undefined有效果
var c = null; var d =String(c); alert(typeof d)//数据类型为String; "null"
方法3:使用加号操作符进行拼串
var a = "\""+123+"\""; alert(a); //输出值为"123"
Number 数值
var a = 123;
使用IEEE754(二进制浮点数算术标准)格式来表示整数和浮点数
数字的进制
基本格式为十进制整数,除十进制外,还可以用八进制或者十六进制的字面量表示。
注意:八进制的字面量第一位必须是0,八进制的数字序列(0-7),如果超出数字序列,那么前面的0会被忽略,后面的数值会当做十进制数值解析
var num1 = 070; //八进制的56; var num2 = 079; //无效的八进制,解析为十进制79
八进制在严格模式下是无效的,会导致该模式JavaScript引擎抛出错误
十六进制字面量的前两位必须是0x,后跟任何十六进制数字(0~9以及A-F),字母可以大写也可以小写
浮点数值
该数值中必须包含一个小数点,并且小数点后面至少有一位数字。小数点之前也可没有整数,但是不推荐。
对于极大或者极小的数使用e表示法(科学计数法)表示浮点数值表示。
3.125e7 = 31250000 0.00003 = 3e-5
浮点数的最高精度为十七位小数,但是精度远远不如整数
NaN
非数值是一个特殊的数值。用于表示一个本来要返回数值的操作数未返回数值的情况。在ECMAScript中,任何数值除以非数值会返回NaN
其具有的两大特点:
1.任何涉及NaN的操作都会返回NaN l例如NaN/10
2.NaN与任何值都不相等,包括其本身
针对其特点定义了 isNaN() 函数
它会在接收到一个值后,会尝试将其转化为数值。某些不是数值的值会被转化位数值,任何不能被转换的值都会导致该函数返回true.\
最大数:Number.Max_Value
最小数(大于0的最小数):Number.Min_Value
正无穷:Number=Infinity;
负无穷:Number=-Infinity;
不是数值:Number=NaN;
以上三个用typeof检验时,数据类型都是Number
如果转换为Number?
使用Number()、parseInt()以及 parseFloat()三个函数
使用Number()
Boolean ---》 ture 返回 1 false 返回 0
Undefined ---》NaN
Null ---》 0
Number ---》Number
忽略前导0
使用parseInt(),更多的看其是否符合数值模式
忽略字符串前的空格,找到第一个非空格字符,如果该字符不是数字字符或者负号则返回 NaN;
可以识别整数格式,拥有第二个参数,可以规定数字进制 parseInt(”123“,10);
空字符串 ---》NaN
解析时遇到了一个非数字字符则停止解析,否则持续解析完
使用parseFloat()
从第一个字符开始解析每个字符,解析到无效浮点数停止解析,否则持续解析完。
直接忽略前导0
只可以解析十进制,没有第二个参数
如果字符串可以解析为整数,则直接解析为整数
Boolean 布尔值
该类型只有两个字面值 true 或者 flase 注意区分大小写,Ture和Flase都不是布尔值
如何转换为布尔值?
使用 Boolean()
String任何非空字符串都为true
Number 任何非零数字值(包括无穷大)都为true 0和NaN转换为false
Object 任何对象都会转换为true null会转换为false
undefined只会转换为false
Undefined 未定义
显示地初始化变量是明智的,包含undefined的变量是还没有被声明,而不是未初始化。未初始化的变量也会被赋予这个属性,声明是为证明它只是没有被声明,而不是也没有初始化。
var a = undefined; aler(a==undefined);//返回true
Null 空值
专门用来表示空的对象,用typeof检验时返回Object
事实上,undefined时派生于null,在检验undefined == null 返回true;
注意undefined和null的区别 undefined是为定义的 但是null是定义了一个空的对象;
以上仅为学习js基础后复习整理的,有错误的地方请指正!