- JS中适用typeof能得到的哪些类型
- 何时使用===何时使用==
- JS中有哪些内置函数
- JS变量按照存储方式区分为哪些类型,并描述其特点
- 如何理解JSON
变量类型
- 值类型vs引用类型
- typeof 运算符详解
//值类型
var a = 100;
var b = a;
a = 200;
console.log(b)//100
//引用类型
var a = {age:20};
var b = a;
b.age = 20;
console.log(a.age);//21
值类型赋值时相当于把变量赋值一份,所以两个变量啊a,b是隔离的,互相不受影响;
引用类型相当于指向同一个对象,a,b指向同一个对象,那么修改一个变量的属性相当于修改引用对象的属性,所以a,b会互相影响;
值类型:undefined string number Boolean
引用类型:对象,数组,函数;
引用类型有个特点可以无限扩展属性;
JS中适用typeof能得到的哪些类型?
typeof undefined;//undefined
typeof 'abc';//string
typeof 123;//number
typeof true;//boolean
typeof {};//object
typeof [];//object
typeof null;//object
typeof console.log;//function
前面4个是值类型,后面的引用类型;
typeof null是引用类型是因为null也是一个指针,但是它指向的是一个空对象;
typeof console.log可以检测出是function类型是因为函数类型是js中一个很重要的存在。
typeof只能区分值类型,不能区分引用类型;
如何判断对象的数据类型?
JavaScript中有6中数据类型:string,boolean,object,null,undefind.number
方法一:typeof
typeof只能区分值类型,不能区分引用类型,即只能判断string ,Boolean,null,undefined,number,其余都返回object,除了function外。
方法二:instanceof
用来判断数组和对象,不能用于判断string和Boolean。
方法三:constructor
数组和对象。
方法四:利用tostring()
object.prototype.toString().call()
方法五:利用jquery的
.isPlainObject();
.
i
s
P
l
a
i
n
O
b
j
e
c
t
(
)
;
.isArray(obj);$.isFunction(obj)进行判断。
变量计算–强制类型转换
- 字符串拼接
- == 运算符
- if语句
- 逻辑运算
100 == ‘100’//true
0 == ''//true
null == undefined // true
var a = true;
if(a){
//}
var b = 100;
if(b){}
//都会发生强制类型转换
console.log(10&&0)//0
console.log(''||'abc')//abc
console.log(!window.abc)//true
//判断一个变量会当做true还是false
var a = 100;
console.log(!!a);
何时使用===何时使用==
在一般的判断中我们都应该使用===,但是在代码中obj.a==null代表obj.a===null || obj.a===undefined,所以只有在判断对象中某个属性的时候用==null,其他地方都使用===。
js有哪些内置函数
object
function
Boolean
string
number
date
array
regexp
error
JS变量按照存储方式区分为哪些类型,并描述其特点
引用类型 值类型
值类型的值赋值后隔离的;
引用类型不会,他们引用的是同一个对象;
如何理解JSON
- 只不过是一个对象而已,同时也是一个数据格式;
- 有两个常用API
JSON.stringify({a:1,b:2})//对象转化成字符串
JSON.parse({'a':1,'b':2})//字符串转化成对象