你不知道的js
2017-02-15 15:44:16 0 举报
AI智能生成
JavaScript是一种轻量级的解释型或即时编译型的编程语言,它是Web的三大核心技术之一。JavaScript可以在浏览器、服务器、移动设备等多种环境中运行,具有与HTML和CSS互动的能力,可以实现网页的动态效果和与用户的交互。JavaScript的主要特点包括面向对象、事件驱动、异步处理等。它的语法简洁明了,学习曲线较低,是初学者入门编程的首选语言。同时,JavaScript也是许多大型项目如Node.js的基础。尽管JavaScript在前端开发中占据主导地位,但它也在后端开发、游戏开发、移动应用开发等多个领域发挥着重要作用。
作者其他创作
大纲/内容
上
作用域和闭包
作用域
存储和取用变量的规则
var a = 2
编译器声明var a
引擎执行a=2
LHS查询
对变量赋值
RHS查询
获取变量的值
词法作用域
欺骗词法
eval
setTimeOut
执行动态创建的代码
性能问题
with
无法编译期优化
函数作用域
隐藏
匿名函数
立即执行函数
块作用域
try/catch
let/const
提升
先声明后执行
避免重复声明
闭包
模块
this和对象模型
this指向运行时环境
中
类型和语法
类型
类型是值的内部特征,它定义的值的行为,使其区别于其他值
函数是可调用对象,其内部属性[[call]],使其可被调用
变量是没有类型的,变量持有的值才有类型
typeof
undeclared
未声明
undefined
声明但未赋值
上面两者均为undefined
值
类数组转换为数组
slice
Array.from( arguments )
通过借用数组操作字符串
不能借用数组的可变更成员函数,因为字符串不可变
Number
双精度浮点数
32位
没有整数
42===42.0
true
toFixed
小数位数
toPrecision
有效数位
0.1 + 0.2 === 0.3
false
机器精度
不支持大数位,转换位字符串处理
NaN
not a number
+Infinity
-0
引用指向值的本身,而不是变量
原生函数
内部属性[[class]]
Object.prototype.toString.call( [1,2,3] )
'object Array'
封装对象
不建议使用,编译器会自动优化
优先使用常量形式而非原生函数创建
基本数据类型的封装对象
原生函数
强制类型转换
语法
子主题
异步和性能
现在
未来
回调函数
快速的上下文切换
回调地狱
非顺序性与大脑思考相悖
不可信任
控制反转
回调函数调用由第三方控制
Promise
解决控制反转,
把回调安排给Promise
benchmark
性能测试
0 条评论
下一页