首页 > IT问答库 > Web全栈开发 > 怎么能学好Web前端开发?JS进阶知识点包括哪些?

怎么能学好Web前端开发?JS进阶知识点包括哪些?

    怎么能学好Web前端开发?JS进阶知识点包括哪些?JavaScript是前端小白学习的难点,但又是前端工程师必须要掌握的技能。很多同学反映JavaScript知识点多而杂,不知道如何下手,下面就给大家盘点一下JavaScript相关的知识点。
 

 
    语言构成:
 
    1)基础语法(ECMAScript=ES 1、2、3、3.1、5(IE9+)、6:ES2015)/
 
    2)BOM:Brower Object Model 浏览器对象模型
 
    3)DOM(W3C):Document Object Model 文档对象模型
 
    变量
 
    变量的声明:(var关键字) 会提升到当前作用域的顶部
 
    JS作用域:全局作用域、局部作用域(写一个函数就产生了一个局部作用域)
 
    数据类型
 
    JavaScritp的数据类型有:数值类型、字符串类型、布尔类型、null、undefined、对象(数组、正则表达式、日期、函数)。基本数据类型:数值、字符串、布尔、null、undefined(值类型);复杂(复合)数据类型:对象(引用类型);
 
    使用typeof可以检测数值、字符串、布尔、undefined、函数;无法检测函数以外的对象类型以及null。
 
    数据类型的转换:
 
    Number("12ab"); //NaN
 
    parseInt("12.1ab"); //12
 
    parseFloat("12.1ab"); // 12.1
 
    运算符
 
    算术运算符:+、-、*、/、%(求余、取模)
 
    逻辑运算符:&&、||、!
 
    注意:&&:看运算符左边的数是否为真值,如果为真值,返回右边,如果为假值,返回左边;||:看运算符左边的数是否为真值,如果为真值,返回左边,如果为假值,返回右边。
 
    假值:空字符串""/数字0/null/undefined/false/NaN
 
    循环语句:for while do...while for...in
 
    函数声明:1)声明式函数——>函数声明提前(会提升到当前作用域的顶部);2)函数表达式(变量声明提前)。如果同时存在变量声明和函数声明,那么声明后的结果是一个函数。
 
    参数arguments获取实参的相关信息;函数的返回值由return 语句决定。
 
    异常:JS代码执行的时候出现的错误,出现错误之后,后面的代码无法执行。
 
    异常捕获:代码出现了异常之后,进行手动的捕捉。
 
    异常捕获的使用场景:一段代码可能发生错误,这个错误现在没时间解决,为了保证后面的代码可以成功执行,就进行异常捕获:try...catch。
 
    面向对象
 
    JS是一门基于对象的多泛式语言,可以使用面向过程进行开发,比如:获取元素,绑定事件、设置样式、完成动画等。
 
    可以使用面向对象的方式进行开发
 
    面向(关注于)过程:基于函数、封装函数
 
    面向对象:关注点变成了对象
 
    对象的概念:数据集、功能集
 
    构造函数
 
    为什么要有构造函数?一些对象具有相同的属性和方法(特征和行为),将他们抽象出一个同一个类型,在JS中就需要通过一个构造函数来创建这些对象,在构造函数内部设置对象的属性和方法。
 
    好处:一次封装,多次调用,可省略一些代码,也让代码更具有可读性。
 
    获取对象上的属性和方法
 
    1)属性:
 
    a. 实例.属性名;
 
    b. 实例["属性名"];
 
    2)方法:
 
    a. 实例.方法名;
 
    b. 实例["方法名"];
 
    设置对象上的属性和方法
 
    1)属性:
 
    a. 实例.属性名=新的值;
 
    b. 实例["属性名"]=新的值;
 
    2)方法:
 
    a. 实例.方法名=新的值;
 
    b. 实例["方法名"]=新的值;
 
    删除原型对象中的say方法:delete
 
    构造函数和普通函数的区别:
 
    构造函数和普通函数只在调用方式不同
 
    1)当成普通函数来调用:
 
    a. 函数内部的this指向调用的对象(如果没有找到调用的对象,this指向window)
 
    b. 函数的返回值由return语句决定,如果没有说明函数没有返回值(返回值是undefined)
 
    2)当成了构造函数来调用会经历以下过程
 
    a. 创建一个该构造函数的实例
 
    b. 将构造函数内部的this的值指向该实例
 
    c. 执行函数体
 
    d. 默认的返回值:该实例
 
    3)函数调用的4种方式 function fn(){}
 
    a. 普通调用:fn();
 
    b. 当成构造函数调用:new fn();
 
    c. 被对象调用:o.fn();
 
    d. 上下文模式:call/apply
 
    4)构造函数的返回值
 
    a. 构造函数没有手动添加返回值,返回构造函数的实例
 
    b. 构造函数返回基本数据类型的值,返回的还是构造函数的实例
 
    c. 构造函数返回对象类型的值,返回就是那个对象
 
    原型对象:构造函数的prototype属性:随着实例化的次数增加,不同的对象他们拥有的say方法指向不同的内存,功能相同,造成了内存的浪费,为了解决内存,将这个方法放在某个对象(原型对象)中。
 
    结论1:给构造函数的prototype属性(对象)添加一个方法,这个方法就可以被构造函数的实例所共享。
 
    推论1:构造函数的prototype属性(对象)上面的属性、方法都可以被构造函数的实例所共享。
 
    推论2:Student.prototype.constructor===s1.constructor。
 
    结论2:构造函数的实例有一个__proto__指向的是构造函数的prototype属性(原型对象) s1.__proto__===Student.prototype
 
    总结:
 
    a.原型对象是构造函数的prototype属性;
 
    b.构造函数的实例的__proto__属性指向原型对象;
 
    c.原型对象有一个constructor属性指向构造函数本身。
 
    以上只是JavaScript知识点的一小部分,对于想要入行Web前端行业的人来说,就业是个大问题,也直接影响着各个的决定。因此,选择专业的学习比较好,不仅理论基础扎实,还有丰富的项目开发经验,有明确的职业规划和娴熟的面试技巧,为自身的快速就业提供了可能。
可分享到:
上一篇 : Web前端开发前景好不好?怎么才能在行业中立足?
下一篇 : Web前端发展前景怎么样?学前端开发有哪些优势?
你可能感兴趣的内容|INTERESTING NEWS

限时优惠
本周申请限100个名额