小白学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前端行业的人来说,就业是个大问题,也直接影响着各个的决定。因此,选择专业的学习比较好,不仅理论基础扎实,还有丰富的项目开发经验,有明确的职业规划和娴熟的面试技巧,为自身的快速就业提供了可能。