js基础知识

数据类型

六种数据类型

js基础知识
原始类型+object
原始类型:

number
string
boolean
null
undefined

object 对象

Function
Array
Date

隐式转换

+和-

字符串 + 数字 = 字符串
字符串 - 数字 = 数字(字符串为数字时)

32+32 = 64
"32" + 32 = "3232"
"32" - 32 = 0

技巧:

num - 0//可以进行字符串转数字
num + '' //可以进行数字转字符串

==

"1.23" == 1.23
0 == false
null = undefined
 new Object() = new Object()
 [1,2] = [1,2]

js基础知识

===

js基础知识

包装对象

当把一个基本类型数据当对象使用的时候,会隐式转换为对应包装类
js基础知识
赋值完t属性后,str临时对象会被销毁掉,所以无法访问t属性
js基础知识
js基础知识

类型检测

typeof

特殊记忆:typeof null返回的不是null,由于历史原因没有改成null
js基础知识

obj instanceof Object

判断obj是不是某一个类;
不用window或者iframe下对象会不同,所以不能使用
js基础知识
js基础知识

Object.prototype.toString.apply()

js基础知识

constructor和duck type

表达式和运算符

表达式

js基础知识

运算符

js基础知识

逗号运算符

取最右边的,个人觉得可以理解为:从左执行到右
js基础知识
参考:JavaScript逗号运算符

//交换变量,无需第三个变量
var a = 'a', b = 'b';
//method1
a = [b,b=a][0];
//method2
a = [b][b=a,0];

delete运算符

删除属性
js基础知识
可以通过设置对象的configurable为false,表示属性不可删
js基础知识

in运算符

判断对象是否有对应key
js基础知识

new运算符

js基础知识