属性操作的两种方式
1 ".";
2 [] ;
- 数字不能用 点 只能用[] 变量必须用[]
- 所有点 能操作的属性 []都能操作
'='相关
- '=' 赋值
- '==' 非严格比较 ;只比较结果 不比较数据类型
- '===' 严格比较 : 既比较结果 也比较数据类型
出现省略号的方法
white-space:nowrap; 不折行
text-overflow:ellipsis; 文本溢出 显示省略号
overflow:hidden 溢出隐藏
switch 坑 需要注意
- 严格比较 既比较值 也比较数据类型
数据类型
数据类型判断 type of
-
数据类型
- 基本类型
- 引用类型
-
null undefined 区别:
- null 现在没有 以后会有
- undefined 以后也没有
- 函数没有返回值 1 没写return 2 写了return 但没有返回值
- 对象某个属性不存在的时候 拿到的值就是undefined
- 定义了形参 但没有赋值
-
object 对象 {}
- {k:v,k:v}
- for...in 遍历
for(var key in obj){ key 属性名 obj[key] 属性值 }
-
对象增删改查
- 增 obj.name 属性名不存在
- 改 obj.name 属性名存在
- 查 obj.name
- 删 假删除 obj.name = null
真删除 delete obj.name
-
数组 [1,2,3,4,5]
- for循环
- for...in
-
数组的增删改查
- 增 ary[0]=5
- 改 ary[0]=3
- 查 ary[2] 通过索引查找
- 删 使用数组方法删除
- splice
删除ary.splice(2,1)
插入ary.splice(2,0,'哈哈')
替换ary.splice(2,2,'haha')
- splice
- 运算符
'+' 拼接 (优先) 和 运算
运算符
- 算术运算符: + - / %
% 有几种情况 就模几
/ % 除了 + 外,都具有隐式数据类型转换 - 比较运算符: == === != !== < > <= >=
- 逻辑运算符: &&且 ||或 ! 非
- 赋值运算符: = += -= *= /= %=
- 运算符优先级 算术 >比较 >逻辑 >赋值
数字 number
- toFixed()(保留几位小数 可以四舍五入)
- Number() 强制数字转换 严格转换
- parseInt()保留整数 非严格转换parseInt() 和parseFloat()
- parseFloat()保留小数
- NaN isNaN()
- 布尔值 转 数字 true 1 false 0
- 对象 转 数字: [] 通过 toString() 转成 空字符串"" , 空字符串再通过 Number() 转成 0
- null 转成 0 ; undefined 转成 NaN;
null =>0 undefined =>nan
什么真 什么假
- 以下几个为假 其他都为真
- false '' 0 NaN null undefined
== 数据类型 比较
1对象和对象比较,按照地址进行比较,[]==[] false 引用数据类型是对地址的比较
2对象和布尔比较,按照数字进行比较,[]==![] true
! 会优先进行布尔类型转换
[]=> true => 1
[] =>''=>0 ![] => false => 0
3对象和字符串比较 转成字符串 []=='' true
4对象和数字比较 转成数字 []==0 true
5字符串和数字比较 转成数字 ''==0 true
6字符串和布尔比较 转成数字 ''==false true
7数字和布尔比较 1==true 0==0 false
8 null==undefined true
null===undefined false
9 NaN==NaN false 跟谁比较都不相等 包括自己