1、不可改变的原始值(栈数据stack)
Number,string,Boolean,undefined,null
2、引用值(堆heap)
array,object,function...date 、RegExp
3、任何数据类型加字符串都等于字符串
console.log(0/0) ;//NaN
console.log(1/0) ;//Infinity
console.log(-1/0) ;//-Infinity
console.log(NaN==NaN) //false
4、被确认为false的值
undefined、null、NaN、" ",0、false
5、typeof
六种数据类型 number、string、Boolean、undefined、object、function
console.log(typeof(NaN)) //number
console.log(typeof(null)) //object
6、显示类型转换
Number(mix)
parseInt(string,radix)
parseFloat(string)
toString(radix)
String(mix)
Boolean()
console.log(Number(true)) //1
console.log(Number(false)) //0
console.log(Number(null)) //0
console.log(Number(undefined)) //NaN
console.log(Number("a")) //NaN
console.log(parseInt(true)) //NaN
console.log(parseInt(false)) //NaN
注意:null和undefined不能调用toString()方法
7、隐式类型转换
isNaN()->Number()
++/-- +/-(一元正负)
+
-*/%
&& || !
< > <= >=
== !=
注:console.log(undefined==null) //true
console.log(NaN==NaN) //false
8、不发生类型转换
=== 、!==
注: console.log(NaN===NaN) //false
console.log(typeof(undefined)) //undefined
console.log(typeof(typeof(undefined))) //string
9、函数
1、函数声明 2、命名函数表达式 3、匿名函数表达式---函数表达式
//函数声明
function theFirstName(){
}
//命名函数表达式
var test = function abc(){
document.write("a")
}
//匿名函数表达式 --- 函数表达式
var demo = function(){
document.write("b")
}