一些js问题

null和undefined的区别

1. 如果有一个操作数是布尔值,则在比较相等之前将其转换为数值————false转换为0,true转换为1;

2. 如果一个操作数是字符串,另一个操作符是数值,则在比较相等之前先将字符串转换为数值;

3. 如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较。


面向对象理解

1.JS中的对象就是普通名值对的集合

2.使用对象时,只关心对象提供的功能,不用关注内部细节

3.面向对象的特点

a.封装

b.继承

c. 多态

4.依附于对象的变量叫属性

依附于对象的函数叫方法

5.创建对象的三种方式

a.工厂模式,使用简单的函数创建对象,为对象添加属性和方法,然后返回对象

b.构造函数模式,创建自定义引用类型,可以像创建内置对象实例一样使用new操作符,这种方法的缺点是,构造函数的每个成员都无法复用,每次创建出的对象都只有私有变量和私有方法,不能实现共用

c.原型模式,使用构造函数的prototype属性来指定共享的属性和方法,即使用构造函数定义实例属性,使用原型定义共享的属性和方法

6.继承

JS主要通过原型链实现继承,原型链是通过将一个类型的实例赋值给一个构造函数的原型实现的


模块化理解

模块化就是为了减少系统耦合度,提高高内聚,减少资源循环依赖,增强系统框架设计。

让开发者便于维护,同时也让逻辑相同的部分可复用

模块化开发:针对js、css,以功能或业务为单元组织代码。js方面解决独立作用域、依赖管理、

api暴露、按需加载与执行、安全合并等问题,css方面解决依赖管理、组件内部样式管理等问题。

你可能感兴趣的:(一些js问题)