<body>
<!--
单词记忆 argument:实参 assignment:赋值 instance:实例
1.JS中的数据类型分为以下类型
*值类型(基本类型)*String:可以为任何字符串*Number:可以为任何数字*boolean:false/true*undefined:undefined 代表定义了但没赋值*null:null 代表定义了也赋值,只是值为null
*引用类型(对象类型)*Object:任意对象(对象不能执行)*Function:是一种特别的对象(右边加括号,可以执行)*Array:也是一种特别的对象(数值下标,其中的数据是有序的)
2.判断*typeof:返回的是数据类型的字符串,可以判断undefined,number,string,boolean,还可以判断function,*不能判断null与Object,Object和Array*instanceof:用来判断对象的具体类型*===:可以判断undefined,null,不能判断数值类型
--><script type="javascript">//1*基本类型var aconsole.log(a,typeof a,typeof a==='undefined',a===undefined)//打印出来的是undefined而第二个是"undefined",true,truevar a=3console.log(typeof a==='number')//注意这里number要加引号表示一个number类型,返回的是truevar a='jxb'console.log(typeof a==='string')//truevar a=trueconsole.log(typeof a==='boolean')//truevar a=trueconsole.log(typeof a==='boolean')//Objectvar a=nullconsole.log(typeof a)//Objectvar a=nullconsole.log(a===null)//true//2对象类型var b1={b2:['a',11,console.log],b3:function() {console.log('b3');return function() {//返回值居然可以是一个function函数(千万不能说是方法,以前老是说成方法了)return 'jxb';}}}console.log(typeof b1.b2)//'Object'所以不能判断Object和Arrayconsole.log(b1 instanceof Object,b1 instanceof Array)/*翻译xx是不是yy类型的实例,那么yy是一个构造函数(new Object()),true,false*/console.log(b1.b2 instanceof Array,b1.b3 instanceof Object)//true,trueconsole.log(b1.b2 instanceof Object,b1.b2 instanceof Function)//true,true 注意这里Function开头必须是大写console.log(typeof b1.b3==='function')//注意加了引号都是小写开头,true
console.log(b1.b3,typeof b1.b3)/*ƒ () {console.log('b3');} "function"*/console.log(typeof b1.b2==='function')//其中typeof返回的是"function"字符串,trueb1.b2[2](4)//打印出来居然是4,说明括号右边是一个函数,函数是什么?函数的右边可以加括号执行调用,其中 b1.b2[2]是一个表达式console.log(b1.b3()()); //返回的是b3,jxb,到前面一个括号结束表示return后面函数,再加一个括号得到的是jxbvar obj={//对象是用来存数据的,这个存的数据不能执行name:'Tom',age:12}function fn(){//而函数是用来存代码的,代码可以执行
}//小知识点:undefined和nullvar aconsole.log(a)a=nullconsole.log(a)//返回的是null</script>
</body>