编程范式(方式)
命令式编程
如:JS、Java
- 过程化
- 对象化: 对象,一组属性的集合;类,对对象的描述;JS没有类 对象 → 原型 → object → null(源)
声明式编程
如:HTML、CSS、SQL
-
DSL领域的特定语言
-
函数式编程
JS支持命令式、函数式编程,包容性强,有各类写法,不纯粹。
对象
字面量对象
let object={
name:'vivi',
age:20,
gender:'女',
show: function(){
console.log('hi,我是'+this.name);
}
}
console.log(obj.name); // 输出: vivi
obj.show(); hi,我是vivi
语法糖:创建对象的快捷方式
JSON :JavaScript Object Notation (JS 对象 表示法)
- 方便存储、传输数据;
- 现不局限于JS,数据传输标准格式,属性必须是字符串
构造函数
注:首字母大写
let Student=function(name,age,gender){
this.name=name,
this.age=age,
this.gender=gender,
this.show=function(){
console.log('hi,我是'+this.name);
}
}
let stu1=new Student('vivi', 22,'女')
let stu2=new Student('Jack', 26,'男')
console.log(stu1==stu2); // 输出: false
stu1.show(); hi,我是vivi
stu2.show(); hi,我是Jack
构造函数 + 原型
let Student=function(name,age,gender){
this.name=name;
this.age=age;
this.gender=gender;
}
Student.prototype.show=function(){
console.log('hi,我是'+this.name);
}
let stu1=new Student('vivi', 22,'女')
let stu2=new Student('Jack', 26,'男')
stu1.show(); // 输出: hi,我是vivi
stu2.show(); hi,我是Jack
构造函数 不等于 原型
总结
- 使用prototype构造函数时,在对象外
- 声明时只有原型首字母大写(例:let Student),其他均小写;构造函数 (例:Student.prototype)不等于原型,若相等,输出false 。
- 值传递:原始数据类型,传递的是值;引用数据类型,传递的是同一对象的内存地址 。
- 引用数据类型,变量声明赋值位置不同影响控制台输出结果。