<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 a
console.log(a,typeof a,typeof a===‘undefined‘,a===undefined)//打印出来的是undefined而第二个是"undefined",true,true
var a=3
console.log(typeof a===‘number‘)//注意这里number要加引号表示一个number类型,返回的是true
var a=‘jxb‘
console.log(typeof a===‘string‘)//true
var a=true
console.log(typeof a===‘boolean‘)//true
var a=true
console.log(typeof a===‘boolean‘)//Object
var a=null
console.log(typeof a)//Object
var a=null
console.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和Array
console.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,true
console.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"字符串,true
b1.b2[2](4)//打印出来居然是4,说明括号右边是一个函数,函数是什么?函数的右边可以加括号执行调用,其中 b1.b2[2]是一个表达式
console.log(b1.b3()()); //返回的是b3,jxb,到前面一个括号结束表示return后面函数,再加一个括号得到的是jxb
var obj={//对象是用来存数据的,这个存的数据不能执行
name:‘Tom‘,
age:12
}
function fn(){//而函数是用来存代码的,代码可以执行
}
//小知识点:undefined和null
var a
console.log(a)
a=null
console.log(a)//返回的是null
</script>
</body>
原文:https://www.cnblogs.com/junxiaobai/p/10328228.html