美文网首页
你不懂的js上卷(一)

你不懂的js上卷(一)

作者: 想回到童年 | 来源:发表于2018-04-25 18:11 被阅读0次

基本概念

js引擎 编译器 作用域
变量赋值操作

1.编译器会在当前作用域生命一个变量,如果以前没有声明过
2.js引擎会在作用域查找该变量,找到对他进行赋值
3.查找变量的目的是进行赋值的话,就会使用LHS查询
4.查找变量的目的是获取比变量的值的话,就会使用RHS查询

词法作用域(定义词法阶段的作用域)

1.由变量或者函数声明时的位置决定
2.欺骗词法作用域
eval("var a = 123") 动态执行代码 造成性能损失较大 修改作用域
with() 创建新的作用域

函数作用域(属于函数的变量都可以在整个函数的范围内使用及复用)

1.如果函数不需要函数名或者函数名不污染所在作用域,并能自动执行,函数立即表达式
2.函数表达式和函数声明的区别
函数声明 函数名被绑定在所在的作用域中,直接通过函数名来调用
函数表达式 函数名隐藏在自身中,只能在函数内部访问,外部作用域不行
3.匿名与具名 函数声明必须是具名 函数表达式可以是匿名 但是具名
4.IIFE 函数立即表达式

形式
1.(function(){})() ==(function(){}())//两种形式等价
2.可以将函数当做参数传进去
作用
通过闭包实现数据的封装
const counter = (function() {
    let value = 1;
    return {
        set(val) {
            value = val;
        },
        get() {
            return value;
        }
    }
})()

变量重命名
解决名明明冲突
window.$ = function(){}
(function($){})()

捕获全局对象
(function(global){})(this)

块作用域 {}

1.let 将变量隐士的绑定在所在的任意作用域中{} 不存在变量提升
2.快作用域指的是变量和函数不仅属于所处的作用域,也可以属于某个代码块

相关文章

  • 你不懂的js上卷(一)

    基本概念 js引擎 编译器 作用域变量赋值操作 词法作用域(定义词法阶段的作用域) 1.由变量或者函数声明时的...

  • 你不懂的js上卷(二)

    变量提升 1.先声明 后赋值2.函数声明会被提升,函数表达式却不会3.函数声明会提升到普通变量之前 4 var a...

  • 你不知道的JS(上卷)

    作用域是什么 1.1编译原理 JavaScript引擎编译的步骤与传统的编译语言类似。程序中的一段源代码在执行前会...

  • 你不懂JS:入门与进阶

    你不懂JS:入门与进阶 第一章:进入编程 欢迎来到 你不懂JS(YDKJS)系列。 入门与进阶 是一个对几种编程基...

  • 2月阅读书单及推荐(前端)

    《你不知道的Javascript(上卷)》推荐星级:5星这本书真的是相见恨晚,把JS中最让人头疼的诸如闭包、原型这...

  • 《你不知道的js》----上卷笔记

    1. LHS和RHS查询。他们都是由引擎进行的,取决于变量出现在赋值操作的左侧还是右侧。如果查找的目的是对变量进行...

  • 你不知道的JS-上卷

    作用域整体理解:JS作用域分为函数作用域,全局作用域,with和try catch形成的块级作用域。 JS引擎在编...

  • js不懂

    js常用方法和一些封装 -- 时间相关(附案例详解)http://www.jianshu.com/p/e54156...

  • 《被动》目录 完结

    《被动》上卷 知有飘零 目录 《被动》 上卷 楔子 《被动》上卷 第一章 囚鸟 《被动》上卷 第二章 相聚 《被动...

  • 读书笔记分类目录

    红宝书 第二章html中使用JavaScript第三章基本概念第四章变量,作用域和内存问题 你不知道的js上卷 链...

网友评论

      本文标题:你不懂的js上卷(一)

      本文链接:https://www.haomeiwen.com/subject/qeiylftx.html