如有帮助请点赞、收藏+关注,更多技术资料获取请点击
Gitee
作用域
在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。分别有全局作用域、函数作用域和块级作用域,函数作用域和块级作用域又统称为局部作用域。
- 全局作用域,可以理解为网页的全部范围
-
局部作用域
- 函数作用域,函数内部,所以不同的函数内可以声明相同的变量
- 块级作用域,if…else、for、forEach、while…
事件
HTML 事件是发生在 HTML 元素上的,JavaScript 可以触发这些事件。事件可以是浏览器行为,也可以是用户行为。
常见的HTML事件
- onchange:HTML 元素改变
- onclick:用户点击 HTML 元素
- onmouseover:鼠标指针移动到指定的元素上时发生
- onmouseout:用户从一个 HTML 元素上移开鼠标时发生
- nkeydown:用户按下键盘按键
- onload:浏览器已完成页面的加载
事件可以用于处理表单验证,用户输入,用户行为及浏览器动作:
- 页面加载时触发事件
- 页面关闭时触发事件
- 用户点击按钮执行动作
- 验证用户输入内容的合法性
- …
this关键字
面向对象语言中 this 表示当前对象的一个引用。但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。
- 在方法中,this 表示该方法所属的对象
- 如果单独使用,this 表示全局对象
- 在函数中,this 表示全局对象
- 在函数中,在严格模式下,this 是未定义的(undefined)
- 在事件中,this 表示接收事件的元素
- 类似 call() 和 apply() 方法可以将 this 引用到任何对象
变量提升和严格模式
变量提升
- 函数及变量的声明都将被提升到函数的最顶部
- 变量可以在使用后声明,即变量可以先使用再声明
- 只有声明的变量会提升,初始化的不会
严格模式
严格模式(strict mode)即在严格的条件下运行。”use strict” 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略。
- 为什么使用严格模式?
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为
- 消除代码运行的不安全之处,保证代码运行的安全
- 提高编译器效率,增加运行速度
- 为未来新版本的Javascript做好铺垫
- 严格模式的限制
- 不允许使用未声明的变量
- 不允许删除变量或对象
- 不允许删除函数
- 不允许变量重名
- 不允许使用八进制
- 不允许使用转义字符
- 不允许对只读属性赋值
- 不允许对一个使用getter方法读取的属性进行赋值
- 不允许删除一个不允许删除的属性
- 变量名不能使用 “eval” 字符串
- 变量名不能使用 “arguments” 字符串
- 由于一些安全原因,在作用域 eval() 创建的变量不能被调用
- 禁止this关键字指向全局对象
-
严格模式新增了一些保留关键字
- implements
- interface
- let
- package
- private
- protected
- public
- static
- yield
错误类型
引擎执行 JavaScript 代码时,会发生各种错误。可能是语法错误,通常是程序员造成的编码错误或错别字。可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。可能是由于来自服务器或用户的错误输出而导致的错误。当然,也可能是由于许多其他不可预知的因素。
- ReferenceError
- SyntaxError
- TypeError
捕获语句
try {
... //异常的抛出
} catch(e) {
... //异常的捕获与处理
} finally {
... //结束处理
}
本文由mdnice多平台发布
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net