js进阶

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js进阶相关的知识,希望对你有一定的参考价值。

页面重构师:1、html、CSS 要做到像素级还原

初级前端工程师:1、js基础

中级前端工程师:1、前端后台交互 2、模块 框架

高级前端工程师:1、性能优化,架构 全栈式


复习js基础:
形参本身是函数的一个形式变量,
实参赋值给形参(如果传入的实参多余形参,我们可以通过arguments(对象)去找到)

arguments(伪数组)可以用length获取伪数组的长度,新规范中不建议使用

es6中不定参数 (...)可以替代 arguments(伪数组)
不定参数可以和参数一起使用,但是不定参数要写在固定参数的后面

let func=function(a=0,b,...params){//a=0 0是默认值
console.log();
}

func();

 


传参:
1、原始类型:值传递,值传递过后,传递的过程将销毁,值传递过后两者就没有关系
2、引用类型:数组(对象):传的是同一个对象的内存地址,(地址传地址)

定参数:把不变的和变得分离开,使函数的重用率更高
返回值:要函数重用的话要让函数有个返回值,返回值只能返回一个值,要返回多个值得可以用到对象,但是有些函数是没有返回值,

 

 


第一课:对象(对象是真实存在的物体)(在js中表示有多个属性放在数组里)
编程范式:1、命令式编程:是编程的主流,关注命令式编程的过程,
2、声明式编程:不会告诉计算机怎么做,是要让计算机给出一个结果,1、领域特定语言(DSL)HTML/css 就是声明式编程。 2、函数式编程:高阶函数

并发:是命令式编程常出现的现象,函数式编程可以更好的解决并发问题。
js:包容性很强,支持命令式编程、函数式编程

命令式编程:
一:面向过程化:主要是来自于计算机,按照步骤依次执行。

二:面向对象化(面对物体):人在面对物体时候的思想。(对象因我关注而产生),对象是真实存在的物体
1、Object:1、特征 /属性
2、行为 /方法

对象的描述:纯面向对象用类(class)来描述对象,类是具有相同属性和方法的集合(类是对象抽象来的)。
类是对象的实例,类是对象抽象来的

js中是没有类的,但是有原型。
所有对象都是通过null衍生出来的(null→Object→原型→对象) 原型→(class)→对象(每一个对象都是从他原型克隆出来的)
没有类概念,只有原型

 


js中构建对象:
//字面量对象
//语法糖:构建对象的快捷方式,
let obj={
name:"张无忌",
age:20,
gender:"男",
show:function(){
console.log("hi,我是"+this.name);
}
}
console.log(obj.name);
obj.show();


//J·SON对象(Java Script Object Notation) 方便存储数据,数据传输
//Java Script Object Notation

//构造函数(首字母大写) 产生多个对象是更简洁
//构造函数+原型
let Student=function(){
this.name=name;
this.age=age;
this.gender=gender;
//this.show=function(){
//console.log("hi,我是"+this.name);
//}
Student.prototype.show=function(){
console.log("hi,我是"+this.name);
}

}
let stu1=new Student("张无忌",20,"男");//产生对象
let stu2=new Student("赵敏",20,"女");
console.log(stu1==stu2);
stu1.show();
stu2.show();


let Student=function(){
this.name=name;
this.age=age;
this.gender=gender;
//this.show=function(){
//console.log("hi,我是"+this.name);//this对象方法中,没个this当前的对象
//}
Student.prototype.show=function(){
console.log("hi,我是"+this.name);
}

}
let stu1=new Student("张无忌",20,"男");//产生对象
let stu2=new Student("赵敏",20,"女");
console.log(stu1==stu2);
//stu1.show();
//stu2.show();
let stu3=stu1;
stu.age=40;
console.log(stu1.age,stu3.age);

 






































































以上是关于js进阶的主要内容,如果未能解决你的问题,请参考以下文章

[js进阶]用原生js实现一个ajax?

js面向对象进阶

js面向对象进阶

JS进阶篇--命名空间模式解析

JavaScript 进阶JS的"多线程"

js函数进阶