JS——变量类型和计算
1 知识点
1.1 变量类型
值类型 VS 引用类型
值类型:Number / String / Boolean / Undefined / Null
引用类型:Object / Array / Function
typeof 运算符详解
number(NaN)、string、boolean、undefined、object(object/array/null)、function
typeof 123 //number
typeof 'abc' //string
typeof true //boolean
typeof undefined //undefined
typeof null //object
typeof { } //object
typeof [ ] //object
typeof console.log //function
(1)undefined与null是相等;(2)NaN与任何值都不相等,与自己也不相等。
1.2 变量计算 - 强制类型转换
字符串拼接
var a = 100 + 10 //110
var b = 100 + '10' //10010
== 运算符
100 == '100' //true
0 == ' ' //true
null == undefined //true
(1)undefined与null是相等;
(2)NaN与任何值都不相等,与自己也不相等。
if 语句
var a = true;
if (a) {
} //a为true
var b = 100;
if (b) {
} //b为true
var c = ' ';
if (c) {
} //c为false
false、null、undefined、“”、0、NaN ——判断为“fasle”,其余为“true”
逻辑运算
10 && 0 //0
' ' || 'abc' //'abc'
!window.abc //true
判断一个变量会被当做 true 还是 false
var a = 100
console.log(!!a)
2 问答
题目:
*JS 中使用 typeof 能得到的类型
*何时使用 === 何时使用 ==
*JS 中有哪些内置函数
*JS 变量按照存储方式区分为哪些类型,并描述其特点
*如何理解JSON
2.1 JS 中使用 typeof 能得到的类型
number / string /boolean / undefined / object / function
(number)/(string)/(ture.false)/(undefined)/(null.object.array)/(funtion)
2.2 何时使用 === 何时使用 ==
===
严格相等,会比较两个值的类型和值
==
抽象相等,比较时,会先进行类型转换,然后再比较值
–只有下面这种情况使用==,其它情况使用===:
if (obj.a == null) {
// 这里相当于 obj.a === null || obj.a === undefined ,简写形式
// 这是 jquery 源码中推荐的写法
}
2.3 JS 中有哪些内置函数
Number / String / Boolean / Object / Array / Function /
Date / RegExp / Error
2.4 JS 变量按照存储方式区分为哪些类型,并描述其特点
- 区分为——值类型、引用类型;
值类型:Number / String / Boolean / Undefined / Null
引用类型:Object / Array / Function - 区别:
①存储位置不一样
值类型:占用空间固定,保存在栈中,保存与复制的是值本身,可以用typeof( ) 检测值类型;
引用类型:占用空间不固定,保存在堆中,保存与复制的是指向对象的一个指针,需要使用instanceof( ) 检测数据类型,使用new方法构造的对象是引用型;
②复制方式不一样
值类型的变量直接赋值就是深复制;
引用类型的变量直接赋值是传递引用,是浅复制;
③能否添加属性和方法
值类型不能,引用类型可以;
2.5 如何理解JSON
JSON 是一个 JS 对象
有两种方法:
①stringify:JSON.stringify将json对象转换为字符串
②parse :JSON.parse将字符串解析成json对象
JSON 也是一种数据交换格式