文章目录
一:JSON对象:
1.1:定义:
描述数据的一种格式,将若干个属性或方法整理成一个对象.主要是同一个概念的不同属性。
1.2:构成:
由键值对构成,“key”:“value”;
var baoguoMa = {
"name":"马保国",
"age":69,
"skill":"闪电五连鞭"
}
1.3:语法要点:
- 花括号
- 键名要有双引号(字面量方式表示对象,键名不需要引号)
- 字符串值要有引号
- 键值之间是冒号
- 键值对之间是逗号
1.4:JSON属性的调用
方式一:a. 打点
console.log(baoguoMa.name);//不加双引号
方式二:b.下标法
console.log(baoguoMa["name"]);//加双引号
1·5:遍历的方式,for…in…
【注意】:for…in中不能通过点方式获取JSON对象属性,只能通过下标法获取
for(var index in baoguoMa){
//console.log(baoguoMa.index);错误
console.log(baoguoMa[index]);
}
二:数组和JSON的区别
- 数组的下标是数字,而JSON的下标是字符串
- 数组是有长度的,而JSON是没有长度的
- 数组是一种数据类型,JSON是一种数据格式(数据类型是可以增删改查)。
三:严格模式:
“use strict” 指令在ECMAScript5)中新增的一个字面量表达式。
“use strict” 的目的是指定代码在严格条件下执行。即就是必须定义才能使用,但是对定义的顺序没有要求,
严格模式只对 firefox4+ Safari5.1+ Chrome,IE10以上的浏览器起作用
四:ES5新增的数组的方法
-
查找数组中某一个数的位置—>indexOf(查找的元素—>查找元素的下标(存在返回下标,不存在返回-1)
-
使用:数组的去重
var arr = [5,6,5,7,6,5,7,5,7,1]; var arr1 = []; for(var i=0; i<arr.length; i++){ if(arr1.indexOf(arr[i]) == -1){ arr1.push(arr[i]); } } console.log(arr1);
五:回调函数
定义:被当做另一个函数的参数(前提是一个函数);
如果是第三方的函数,用户是无法打开函数体内部去修改代码的,但是可以通过参数的形式将自己的函数传入第三方函数,第三方函数会自动在函数体内合理的位置调用传进去的回调函数实现其功能。
六:回调函数的使用
迭代函数,即循环
6·1:forEach(回调函数):
-
遍历数组的所有元素,并执行回调函数的功能
-
【没有返回值,直接改变原数组】
-
回调函数的参数是:(数组当前元素的值,[数组元素的下标,数组名])
var arr=[3,4,5,6,7,8]; //function add(数组当前元素的值,[数组元素的下标,数组名]){ //forEach的回调函数的参数,也是固定好的} function add(x,index,arr){ arr[index] += 10; } arr.forEach(add); console.log(arr);
6·2:map(回调函数):
-
把原始数组的每个元素进行某种处理后
-
【返回的数据通过回调函数的return带回,返回新数组(处理过的值)】
-
回调函数的参数是:(数组当前元素的值,[数组元素的下标,数组名])
var arr = [6,7,5,8]; function add(x,index,arr){ arr[index] += 10; return arr[index]; } var arr1 = arr.map(add); console.log(arr);//打印6,7,8,9 console.log(arr1);//打印16,17,18,19
6·3:filter(回调函数):
-
每个元素在遍历的时候根据条件,选择是否return,是boolean类型的值。
-
返回的是符合条件的新数组
-
回调函数的参数是:(数组当前元素的值,[数组元素的下标,数组名])
var arr = [6,7,5,8,1]; function myFilter(x,index,arr){ if(x%2){ return x; } } var arr1 = arr.filter(myFilter); console.log(arr); console.log(arr1);
6·4:reduce(回调函数):
-
累加每个元素的值
-
回调函数的参数是:(起始值(或者计算结束的返回值),数组当前元素的值, [数组元素的下标,数组名])
var a = [1,2,3,4,5]; function add(total,x,index,arr){ total += x; return total; } var x = a.reduce(add); console.log(x);
七:字符串的创建
两者本质其实一样,
方式一:基本类型
var str = "hello lao wang";//typeo返回string
方式二:引用类型
var str1 = new String("hello lao wang");//typeo返回Object
八;ASCII码表
字符0(48),回车键(13),空格(32),A(65),a(97)
九:字符串的常见API
-
str.length:字符串的长度
-
获取指定字符的编码 —> chartAt(index)—>返回值是字符的编码
console.log(chartAt(A));
-
编码转回字符串 —> fromCharCode(ASCII)—>返回值是对应的字符串【String的方法】
console.log(String.fromCharCode(65,68));
-
查找字符串第一次出现的位置 —> indexOf(“a”)—> 返回值是数字,如果没找到返回-1,找到返回的是下标
var str = "helloworld"; console.log(str.indexOf("o"));
-
查找字符串最后一次出现的位置—>lastIndexOf(“a”)—> 返回值是数字,如果没找到返回-1,找到返回的是下标
var str = "helloworld"; console.log(str.lastIndexOf("o"));
-
替换(使用dest替换src)—> replace(“src”,“dest“)—>返回被dest替换src的字符串,只能替换第一次的src
var str = "ge bi de laowang laowang"; str = str.replace("laowang","dahuang"); console.log(str);
-
提取字串 —> slice(开始下标,结束下标 )—>返回提取的子串。【支持负数】
var str = "helloworld"; console.log(str.substring(2,4)); console.log(str.substring(-2,-4));
-
提取字串 —>substring(开始下标,结束下标)—>返回提取的子串。【不支持负数】
var str = "helloworld"; console.log(str.substring(2,4));
-
字符串分割为数组—> split(分割符号) —> 返回被分割后的数组
var str = "hello wo shi ge bi lao wang"; var arr = str.split("w"); console.log(arr);
-
toLowerCase():字符串小写
var str = "helloworld"; console.log(str.substring(2,4));
-
字符串分割为数组—> split(分割符号) —> 返回被分割后的数组
var str = "hello wo shi ge bi lao wang"; var arr = str.split("w"); console.log(arr);
-
toLowerCase():字符串小写
-
toUpperCase():字符串大写