目录
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、面向对象编程
主要就是取值和赋值
方法
var map =new Map([['tom',100],['jack',90],['peter',80]]);
map.get('tom') //取值
map.set('xiaoming',99) //添加
map.delete('xiaoming') //删除
其是无序且无重复的集合,所以如果出现重复的,则自动整理,简称去重
方法
set.add(2) //添加
set.delete(1) //删除
set.has(1) //判断1是否存在于该集合中,类似于java里的contains()方法
掌握for of 即可。
于for in 的区别是,它可以遍历所有元素,而for in 以下标索引为主
好处:规避风险( arr.name="1,2,3",在原有的基础上)
方法和函数本质上是一样的,并因为位置的不同而不同,方法在对象里面。
有两种方法
//1.法一
function abx(x){
... // 自己补充
}
//法二
var abs=function(x){
...
}
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);
}
(1)养成规范:所有的变量的定义都放在所有函数的头部
var x=1,y=x+2,z,i,a;
(2)全局变量:由于所有的全局函数都会绑定到window上。如果不同的js文件,使用了相同的全局变量,则该如何?
解决
//定义唯一全局变量
var zhang={};
//定义全局变量
zhang.name='k';
在ES6之前,只有用全部大写字母命名的变量就是常量,之后就用const来定义了。
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',[])
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(); //将其转换成本地时间
是一种轻量级的数据交换格式,皆具有层次结构,传输效率高的特点,而且基本上所有后端都是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"}';
1.原生js写法 xhr 异步清理
2.JQury 封装好的$("#name").ajax('''')
3.axios请求
java里的继承<=>JS里的原型,叫做原型链
与其不同的是构造方法的不同
Class student{
constructor(name){
name=this.name;
}
hello(){
alert("Hello!");
}
}
var xiaoming= new Student('xiaoming')
//以前版本的继承 xx_proto_xx 类似于extends