JS对象,JSON

对象

万物皆对象

字面量

书写格式:

关键字 标识符 赋值符号 大括号 分号

let obj = {} ;

例子:

let iphone ={

name:`HW`,

size:5.0,

price:9999,

};

对象初始化

let obj ={

属性名1:属性值1,

属性名2:属性值2,

属性名3:属性值3,

属性名4:属性值4,

};

键值对

键:属性名

值:属性值

变量称为属性,函数称为方法

注:冒号右侧是否是函数

 

【增,删,改,查】

对象名.属性名=添加的内容;

对象名.属性名=添加的内容;(覆盖以前的,用相同的属性名)

delete 对象名.属性名;

 

遍历对象

遍历属性名

for(let items of Object.keys(obj)){

console.log(items);

}

遍历属性值

for(let items of Object.values(obj)){

console.log(items);

}

遍历键值对

for(let items of Object.entries(obj)){

console.log(items);

}

this在对象中代表当前对象

对象解构

f71和f72是自己创建的变量名,如果变量名与属性名相同的则可以缩写成属性名(属性名必须在对象里面存在的)

例子

let obj={

name:`l4`,

age:18,

sex:`ture`

}

let{name:f71,age:f72}=obj;

console.log(f71,f72);

内置对象

内置对象的属性方法

【string】

let str=`123`;

【concat 拼接】

书写格式:字符串1.concat(字符串2)

返回一个拼接后的新字符串

例子

let str1=`123`;

let str2=`HELLO`;

let str3=str2.concat(str1);

console.log(str3);//HELLO123

【substring】

如果给是负值会转化成0

例子

let str1=`123`;

let str2=`HELLO`;

let str3=str2.concat(str1);

console.log(str3.substr(3,1));//E

console.log(str3.substring(3,1));//EL

【startsWith】

判断字符串是不是以XXX开头

书写格式:字符串.startsWith(XXXX)

例子

let str1=`123`;

let str2=`HELLO`;

let str3=str2.concat(str1);

console.log(str3.startsWith(`h`));//false

【endsWith】

判断字符串是不是以XXX结尾

书写格式:字符串.startsWith(XXXX)

例子

let str1=`123`;

let str2=`HELLO`;

let str3=str2.concat(str1);

console.log(str3.endsWith(`123`));//true

 

【trim】

let str=` AAAAAA `

console.log(str.trimLeft());//去除左边空格

console.log(str.trimRight());//去除右边空格

console.log(str.trim());//同时去除左右

 

字符串的大小写转换

例子

let str=`asdASxasdADDIsdasADDDHBI`;

console.log(str.toUpperCase());//大写

console.log(str.toLowerCase);//小写

 

重复字符串的内容

例子

let str=`ABC`;

console.log(str.repeat(3));//ABCABCABC

 

【Date 日期】

例子

let day=new Date();

console.log(day.toString());//Tue Dec 22 2020 14:17:30 GMT+0800 (中国标准时间)

console.log(day.toLocaleString());//2020/12/22 下午2:20:22

console.log(day.toDateString());//Tue Dec 22 2020

console.log(day.toTimeString());//14:23:22 GMT+0800 (中国标准时间)

 

 

获取日期时间

let day=new Date();

console.log(day.getFullYear());//获取年份

console.log(day.getMonth());//获取月份(0-11月)

console.log(day.getDate());//获取日期

 

console.log(day.getHours());//获取时钟

console.log(day.getMinutes());//获取分钟

console.log(day.getSeconds());//获取秒钟

 

【Math】

随机数,四舍五入等等

 

正则表达式

RegExp:RegularExpression

功能:描述来一个字符串的匹配方式,即用户的输入的内容是否符合要求(规则)

声明正则表达式

1.构造函数

let re = new RegExp();

console.log(typeof re, re);//object /(?:)/

2.字面量

书写格式:

关键字 标识符 赋值符号 /正则/匹配模式

例子

g:global全局查找

let str =`3a2b3ac`;

let re = /a/g;

let result= re.test(str);

console.log(result);//true

console.log(str.match(re));//[ 'a', 'a' ]

i:insensit 不区分大小写(默认是区分大小写)

let str =`3a2b3ac`;

let re = /A/ig;

let result= re.test(str);

console.log(result);//true

console.log(str.match(re));//[ 'a', 'a' ]

m:multiline 多行匹配

let str =`3a2b\n3ac`;

let re = /^[3]/img;

let result= re.test(str);

console.log(result);//true

console.log(str.match(re));//[ '3', '3' ]

以n开头

书写格式:^[n]

以n结束

书写格式:^[n]$

 

 

正则表达式量词

贪婪匹配

{n,m}取n个满足的内容,先满足m的个数,如果不够,则取m-1个,直到m-1=n,m不再减1,即停止。

例子

let str = `1112222333334`

let re = /[0-9]{1,5}/g;

console.log(str.match(re));//[ '11122', '22333', '334' ]

【扩展】

书写格式:{n,}代表n到无穷

 

n(?=m)

功能:查找一个后面跟m的n,即n是查找的内容,m是对n的条件

匹配n,小括号是对n的条件

例子

let str=`1a2b3c`;

let re=/[0-9](?=b)/g;

console.log(str.match(re));

n(?!m)

功能:查找一个后面不是跟m的n,即n是查找的内容,m是对n的条件

匹配n,小括号是对n的条件

例子

let str=`1a2b3c`;

let re=/[0-9](?!b)/g;

console.log(str.match(re));

Symbol(基本数据类型)

功能:避免在新增时,更改原有的属性或方法

可以是使用Symbol(唯一性)来创建

注:Symbol后的小括号()里面的内容是对当前Symbol的解释,只能知道当前Symbol是干什么的。

例子

let DD=Symbol();

xiaolei[DD]=[`xiaoMo`];

console.log(xiaolei[DD]);

映射

非字符串类型的数据当属性名

通过set方法进行设置,get方法进行获取

例子

let f71 =new Map();

// f71.set(`name`,`ll`)

// console.log(f71.get(`name`));

f71.set(1,`ABC`);

console.log(f71.get(1));

 

 

JSON

字符串转JSON

例子

let str = `{

" name": "z3",

" age": "18",

" gender": "true"

}`;

let f71 = JSON.parse(str);

console.log(typeof f71, f71);

JSON转字符串

注意:字符串转JSON时,属性名必须是字符串

例子

let str2=JSON.stringify(f71);

console.log(typeof str2,str2);

 

 

 

递归

适用场景:阶乘 n*(n-1)

注:一定要有一个出口(即return具体的值)

function f71(a) {

if (a == 1) {

return 1;

}

return a*f71(a - 1);

}

console.log(f71(5));

 预编译

发生在执行的前一刻

工作原理:

1.创建一个AO对象

2.形参与变量(AO对象的属性名)

3.初始化属性(即给赋值undefined)

4.实参与形参相统一

5.提升字面量声明的函数到函数第一行,函数名是AO的属性名,属性值是函数体

 

 

全局作用域

工作原理:

1.创建一个GO对象

2.var声明变量(不包含函数)(GO对象的属性名)

3.初始化属性名(即给赋值undefined)

4.提升字面量声明的函数到函数第一行,函数名是GO的属性名,属性值是函数体

注:若函数中存在一个赋值但没有关键字的变量,当函数被执行时,该变量才添加到GO

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值