JavaScript基础(三)

转载:https://mp.weixin.qq.com/s/8c5Nm4k7cYvyR5MqluayFg

本文章适用于零基础或入门的同学

JavaScript作用域、事件、this关键字、严格模式、错误类型

作用域

在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。分别有全局作用域、函数作用域和块级作用域,函数作用域和块级作用域又统称为局部作用域。

  • 全局作用域,可以理解为网页的全部范围

  • 局部作用域

    • 函数作用域,函数内部,所以不同的函数内可以声明相同的变量
    • 块级作用域,if...else、for、forEach、while...

事件

HTML 事件是发生在 HTML 元素上的,JavaScript 可以触发这些事件。事件可以是浏览器行为,也可以是用户行为。

常见的HTML事件

  1. onchange:HTML 元素改变
  2. onclick:用户点击 HTML 元素
  3. onmouseover:鼠标指针移动到指定的元素上时发生
  4. onmouseout:用户从一个 HTML 元素上移开鼠标时发生
  5. nkeydown:用户按下键盘按键
  6. onload:浏览器已完成页面的加载

事件可以用于处理表单验证,用户输入,用户行为及浏览器动作:

  1. 页面加载时触发事件
  2. 页面关闭时触发事件
  3. 用户点击按钮执行动作
  4. 验证用户输入内容的合法性
  5. ...

this关键字

面向对象语言中 this 表示当前对象的一个引用。但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。

  1. 在方法中,this 表示该方法所属的对象
  2. 如果单独使用,this 表示全局对象
  3. 在函数中,this 表示全局对象
  4. 在函数中,在严格模式下,this 是未定义的(undefined)
  5. 在事件中,this 表示接收事件的元素
  6. 类似 call() 和 apply() 方法可以将 this 引用到任何对象

变量提升和严格模式

变量提升

  1. 函数及变量的声明都将被提升到函数的最顶部
  2. 变量可以在使用后声明,即变量可以先使用再声明
  3. 只有声明的变量会提升,初始化的不会

严格模式

严格模式(strict mode)即在严格的条件下运行。"use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略。

  • 为什么使用严格模式?
  1. 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为
  2. 消除代码运行的不安全之处,保证代码运行的安全
  3. 提高编译器效率,增加运行速度
  4. 为未来新版本的Javascript做好铺垫
  • 严格模式的限制
  1. 不允许使用未声明的变量
  2. 不允许删除变量或对象
  3. 不允许删除函数
  4. 不允许变量重名
  5. 不允许使用八进制
  6. 不允许使用转义字符
  7. 不允许对只读属性赋值
  8. 不允许对一个使用getter方法读取的属性进行赋值
  9. 不允许删除一个不允许删除的属性
  10. 变量名不能使用 "eval" 字符串
  11. 变量名不能使用 "arguments" 字符串
  12. 由于一些安全原因,在作用域 eval() 创建的变量不能被调用
  13. 禁止this关键字指向全局对象
  • 严格模式新增了一些保留关键字
    • implements
    • interface
    • let
    • package
    • private
    • protected
    • public
    • static
    • yield

错误类型

引擎执行 JavaScript 代码时,会发生各种错误。可能是语法错误,通常是程序员造成的编码错误或错别字。可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。可能是由于来自服务器或用户的错误输出而导致的错误。当然,也可能是由于许多其他不可预知的因素。

  • ReferenceError
  • SyntaxError
  • TypeError

捕获语句

try { 
  ... //异常的抛出 
} catch(e) { 
  ... //异常的捕获与处理 
} finally { 
  ... //结束处理 
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,061评论 6 523
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,407评论 3 404
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,275评论 0 368
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,084评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,091评论 6 400
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,555评论 1 315
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,914评论 3 429
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,900评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,438评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,470评论 3 346
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,596评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,187评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,932评论 3 340
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,361评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,511评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,163评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,671评论 2 366

推荐阅读更多精彩内容