【狂神】JavaScript详细版(10-19)

目录

3.5、Map和Set

3.5.1、Map

3.5.1、Set

3.6 iterator 迭代 

3.7 函数

1.定义

2.调用 arguments

3.变量

4.常量

3.8、方法的定义和调用

3.8. 1、Data

3.9 JSON

4.0、Ajax

4.1、面向对象编程


3.5、Map和Set

主要就是取值和赋值

3.5.1、Map

方法

var map =new Map([['tom',100],['jack',90],['peter',80]]);
map.get('tom') //取值
map.set('xiaoming',99) //添加
map.delete('xiaoming') //删除

3.5.1、Set

其是无序且无重复的集合,所以如果出现重复的,则自动整理,简称去重

方法

set.add(2) //添加
set.delete(1) //删除
set.has(1) //判断1是否存在于该集合中,类似于java里的contains()方法

3.6 iterator 迭代 

掌握for of 即可。

于for in 的区别是,它可以遍历所有元素,而for in 以下标索引为主

好处:规避风险( arr.name="1,2,3",在原有的基础上)

3.7 函数

方法和函数本质上是一样的,并因为位置的不同而不同,方法在对象里面。

1.定义

有两种方法

//1.法一
function abx(x){
       ... // 自己补充
}
//法二
var abs=function(x){
       ...
}

2.调用 arguments

var abs=function(x){
    if(typeof x!='number'){  //这里的typeof x是获得x的类型
            throw 'Not a nubmer' //抛出异常
}

当函数中传递的参过多时,可以用arguments对其进行相关操作

首先arguments是JS免费赠送的一个关键字,代表传递进来的所有参数,是一个数组

使用

var abs=function(x){
    console.log("x=>"+x); //必要纠结这里
    for(let i=0;i

问题:arguments 包含所有参数,我们有时候想使用多余的参数来进行附加操作,需要排除已有参数。

解决:rest Es6引入的新特性,获取除了已经定义的参数之外的所有参数

使用

function aaa(a,b,...rest){ //三个点别漏了
    console.log("a=>"+a);
    console.log("b=>"+b);
    console.log(rest);
}

3.变量

(1)养成规范:所有的变量的定义都放在所有函数的头部

        var x=1,y=x+2,z,i,a;

(2)全局变量:由于所有的全局函数都会绑定到window上。如果不同的js文件,使用了相同的全局变量,则该如何?

    解决

//定义唯一全局变量
var zhang={};
//定义全局变量
zhang.name='k';

4.常量

在ES6之前,只有用全部大写字母命名的变量就是常量,之后就用const来定义了。

3.8、方法的定义和调用

1.调用方法一定要有()

2.window表示的是调用的人,this也可指上一级作用域(这里指的是在调用时)

3.apply 指定对象

使用

function getAge(){
    var now=Data().getfullYear(); //获取现在的年份
    return now-this.birth;
}
var kuangshen={
    name='zhang',
    birth=200,
    age=getAge
}
getAge.apply('zhang',[])

3.8. 1、Data

var now=new Data();
now.getfullYear(); //年份
now.getMonth(); //月 美国的年份是从0开始的 0-11
now.getData();
now.getDay(); //星期
now.getHours(); //时
now.getMinute();
now.getSeconds();
now.getTime(); //时间戳,全球统一,可以用它来得出当地时间
//使用
console.log(new Data(now.getTime()));
now.getGMTstring(); //将其转换成字符串
now,tolocalString(); //将其转换成本地时间

3.9 JSON

是一种轻量级的数据交换格式,皆具有层次结构,传输效率高的特点,而且基本上所有后端都是json。在JS中,一切皆是对象,任何JS支持的类型都可用JS表示 。

格式:(1)对象{}      (2)数组 [ ]    (3)所有键值对 key:value

对象里面是键值对

掌握将其转换的方法即可

//将对象转换成JSON格式
var josnUser=JSON.stringify(user) //这里的user是有内容的对象
//反之
var obj=JSON.parse('user');//里面是user的具体内容,键要加双引号。
//区别
var obj={a:'hello',b:'hellob'};
var json='{"a":"hello","b":"hellob"}';

4.0、Ajax

1.原生js写法 xhr 异步清理

2.JQury 封装好的$("#name").ajax('''')

3.axios请求

4.1、面向对象编程

java里的继承<=>JS里的原型,叫做原型链

与其不同的是构造方法的不同

Class student{
    constructor(name){
        name=this.name;
    }
    hello(){
        alert("Hello!");
    }
}

var xiaoming= new Student('xiaoming')
//以前版本的继承 xx_proto_xx 类似于extends

你可能感兴趣的:(javascript,开发语言,ecmascript)