标签:
1:typeof 用来判断变量的数据类型,虽然null是Null数据类型,但返回的是object数据类型;虽然函数是object数据类型,但返回的是function类型
var x=null;typeof x;
"object"
function x(){}; typeof x;
"function"
2:undefined值派生自null值,对它们的相等性测试返回true;"=="操作符处于比较目的会转换其操作数
undefined==null
true
3:Boolean类型的字面值true和false是区分大小写的,即:True和False都不是Boolean值,是标识符
var y=true;y;
true
4:可以对任何数据类型的值调用Boolean函数,而且总会返回一个Boolean值;if语句会自动执行相应的Boolean转换
Boolean(0)
false
Boolean("")
false
Boolean(undefined)
false
Boolean(null)
false
Boolean(false)
false
Boolean(NaN)
false
5:ECMAScript5引入了严格模式的概念:通过在脚本顶部添加代码编译指示“use strict”的方式,支持严格模式的浏览器包括IE10+,Firefox4+,Safari5.1+,Opera12+和Chrome
"use strict"
function x(){x=5;}
x();
undefined
6:八进制和十六进制
var x=070,y=9;x+y
65
var x=0xA,y=9;x+y
19
var x=0xa,y=9;x+y
19
7:基于IEEE754数值的浮点计算通病,浮点数值计算会产生舍入误差
0.1+0.2
0.30000000000000004
8:NaN两特点:任何涉及NaN的操作都返回NaN;NaN和任何值都不相等,包括本身
5/0
Infinity
NaN/0
NaN
NaN==NaN
false
9:
Number("")
0
parseInt("")
NaN
Number(null)
0
parseInt(null)
NaN
Number(undefined)
NaN
parseInt(undefined)
NaN
Number( 456KK)
VM1205:2 Uncaught SyntaxError: Unexpected token ILLEGAL
Number(" 456KK")
NaN
parseInt(" 456KK")
456
parseInt(false)
NaN
parseInt(22.5)
22
parseInt(070,8)
46
parseInt(0xa)
10
parseFloat(0xa)
10
parseFloat(0xa,10)
10
parseFloat(0xa,16)
10
10:中文两个字节,返回值有问题
var x="你好";x.length
2
11:转换字符串:toString()方法,String()函数,+空字符串
var x=1;x.toString()
"1"
var x=20;x.toString(16)
"14"
var x=null;String(x)
"null"
var x=undefined;String(x)
"undefined"
undefined+""
"undefined"
1+""
"1"
null+""
"null"
true+""
"true"
12:ECMAScript操作符的与众不同在于它们能够适用于很多值,例如:字符串,数字值,布尔值,甚至对象
var x="";x++
0
var x=true;x++
1
true+false
1
true+""
"true"
true+"ccc"
"trueccc"
true+{}
"true[object Object]"
{}++
VM2136:3 Uncaught SyntaxError: Unexpected token }
var x={};x++
NaN
({})+true
"[object Object]true"
13:位操作符(无符号右移>>>,有符号右移>>,左移<<,按位异或^,按位或|,按位与&,按位非~)
var x=100;
x=~x
-101
var x=25&3
undefined
var x=25 & 3
undefined
var x=25 & 3;x
1
var x=25 | 3
undefined
var x=25 | 3;x
27
var x=25 ^ 3;x
26
14:Boolean类型转换方法:!!方法和Boolean方法
var x="";Boolean(x);
false
var x="";!!x;
false
15:逻辑与
({}) && true
true
true && ({})
Object {}
"" && true
""
null && true
null
false && ({})
false
"" && null
""
标签:
原文地址:http://www.cnblogs.com/syf/p/4319017.html