美文网首页
补充知识

补充知识

作者: 我没叫阿 | 来源:发表于2018-12-22 17:33 被阅读0次

 js的特点

        解释性语言 (不需要编译成文件 , 跨平台)

        单线程  (同一时间只能做一件事)

                        编译性语言    c  c++

                            优点:快

                            缺点:移植性不好(不跨平台)

                        解释性语言    javascript  php

                            优点:跨平台**              

                            缺点:稍微慢

JavaScript运行三部曲

        语法分析

        预编译

                -函数声明 整体提升

                -变量 声明提升

        解释执行

1.暗示全局变量:即任何变量,如果未经声明就赋值,此变量就为全局对象所有。

2.一切声明的全局变量,全是window的属性(window就是全局的域)

预编译的四个步骤

            -预编译发生在函数执行的前一刻

1.创建AO(Activation Object)对象

2.找形参和变量声明,将变量和形参名作为AO属性名,值为undefined

3.将实参值和形参统一(实参赋值给形参)

4.在函数体里面找函数声明,值赋予函数体(也就是将函数声明赋值给这个函数声明的名字)

经验1:如果函数体里面有重名的变量和函数,第一个打印的是重名的,那么一定打印的是函数

    function bar() {

            return foo;

            foo =10;

            function foo() {}

            var foo =11;

    }

    console.log(bar());

经验2:如果函数体里面有重名的变量和函数,最后一个打印的是重名的,那么打印的前一行是什么打印出来就是什么

    console.log(bar());

    function bar() {

            foo =10;

            function foo() {}

            var foo =11;

            return foo;

}

原型

    原型是一个共有祖先,是该构造函数构造出对象的共有祖先。

构造函数

    Person.prototype.LastName = 'wang';

    //prototype 是函数的一个属性,并且是函数的原型对象

每个对象都会在其内部初始化一个属性,就是prototype(原型),当我们访问一个对象的属性时, 如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的prototype, 于是就这样一直找下去,也就是我们平时所说的原型链的概念。

    function Person(){

    }

    var person = new Person();

谈谈This对象的理解。

1. this总是指向函数的直接调用者;

2. 如果有new关键字,this指向new出来的那个对象;

3. 在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent中的this总是指向全局对象Window;

Call和apply的区别

作用:都是改变this指向

区别:传参列表不同

call() 方法与 apply() 方法的作用相同,它们的区别仅在于接收参数的方式不同。apply接收一个运行函数的作用域,另一个是数组array,也可以是arguments对象。call() 方法时,传递给函数的参数必须逐个列举出来。

更简单地说,apply和call功能一样,只是传入的参数列表形式不同:如 func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1,[var1,var2,var3])

异步加载js

1.defer异步加载,但要等到dom文档全部解析完才会被执行(只有IE能用)

2.async 异步加载,加载完就执行,async只能加载外部脚本,不能卸载script标签里.

3.创建script标签,插入到DOM中,加载完毕后callback

    function loadScript(url,callback) {

            var script = document.createElement('script');

            script.type ='text/javascript';

            if(script.readyState){

                    script.onreadystatechange =function () {        //IE

                    if(script.readyState =="complete" || script.readyState =="loaded"){

                            eval(callback);

                    }

            }

            }else {

                    script.onload =function () {            //safari chrome firefox opera

                            eval(callback);

                    }

            }

            script.src = url;

            document.head.appendChild(script);

    }

    loadScript('文件路径','函数调用')

相关文章

  • 知识补充

    在不允许修改参数变量的值时可以加上const修饰符 图片 在ios中会自动识别图片@几x来按比例显示假如图片是xx...

  • 知识补充

    1. 傅立叶变换: (1) 傅立叶级数:法国数学家傅里叶发现,任何周期函数都可以用正弦函数和余弦函数构成的无穷级数...

  • 知识补充

    必备词 breakfast voucher[ˈvaʊtʃɚ] 早餐卷 lunch voucher dinner v...

  • 补充知识

    js的特点 解释性语言 (不需要编译成文件 , 跨平台) 单线程 (同一时间只能做一件事) ...

  • 天之路7--新藏线第一日:拉萨-当雄-纳木错-班戈

    ----------------------------------------------- 补充知识:纳木错,...

  • 补充知识7.29

    可能很多人都喜欢忙,我并不喜欢很忙的生活,我喜欢学习的生活,今天幸福感很强,上午打卡了英语口语,下午一直在听张其成...

  • 线程补充知识

    一、线程的状态有哪些: 注:此图来源于我正在学习的vip课程(潭州课程)。很不错,大家可参去看看(毕竟用了人家东西...

  • iOS补充知识

    1、Hash方法与isEqual 1.1、== 运算符判断对象内存地址是否相同 1.2、isequal判断对象是否...

  • HTML 知识补充

    默认 border 很难看,一般都会加一个 frameborder = 0 。 浏览器不支持 JavaScript...

  • 颜色知识补充

    色光三元素:red green blue 色料三元素:将色光三原色两两混合以后,就形成了另外三种颜色,分别是“黄色...

网友评论

      本文标题:补充知识

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