数据类型web
六种数据类型:安全
numberapp
string函数
boolean优化
nullthis
undefinedspa
objectprototype
隐式转换:code
巧用+和-
orm
num-0 转换为数字
num+'' 转换为字符串
===
null===null
undefiend=undefined
NaN ≠ NaN
new Object ≠ new Object
类型比较转换原则
字符串转数字
布尔转数字
对象转基本类型
包装对象:
三种包装类型
number
string
boolean
能够调用对象属性
设置属性不生效,能够使用new 对象()
类型检测:
typeof
基本类型和function
[[Class]]
Object.prototype.toString.apply(变量)
获取内置对象的基元类型 [Object Date],[Object Array],[Object Object]
instanceof
判断对象是否属于某个类
表达式和运算符
表达式: 能计算出值得程序单元
原始表达式
初始化表达式
函数表达式
属性访问表达式
调用表达式
对象建立表达式
运算符:
赋值
算术
字符串
比较
逻辑
位
特殊
条件运算符
逗号运算符
delete
in
instanceof
typeof
new
this
void
语句
函数,for...in,with:
函数定义方式
函数声明 任何地方可调用
函数表达式 后面才能调用
for...in
顺序不肯定
enumerable 为false不出现
受原型链影响
with
传入对象,在块语句中能够把属性当变量使用
让js引擎优化更难
try-catch:
try
尝试执行
出现一个异常就退出try
catch
捕捉和处理异常
throw
自定义异常
1
|
throw
'未定义'
;
|
finally
最终执行,确定会执行
感受意义不大
示例
1
2
3
4
5
6
7
|
try
{
console.log(str);
}
catch
(err){
console.log(err);
} finally {
console.log(
'finally'
);
}
|
严格模式:
做用
语法更合理,更严谨
提供更强的错误检查,提供安全性
使用方式 'use strict'
放在文件头部
放在函数中
使用范围
不容许with
不容许 delete 函数参数
不容许8进制字面量
eval,arguments变为关键字,不能作变量