1.严格模式(strict mode)
概念:使得JavaScript在更为严格的模式下运行
目的:
- (1) 消除JavaScript语法的一些不合理之处
- (2) 消除JavaScript代码运行的一些不安全之处
- (3) 提高编译器的效率,增加运行速度
2 严格模式的使用规范
进入严格模式”use strict”
script标签中使用严格模式
<script>
“use strict”
console.log(“已经进入了严格模式”);
</script>
3使用严格模式后的变化
3.1 全局变量声明时,必须加var
3.2 this无法指向全局对象
3.3 函数内重名属性
3.4 arguments对象
arguments对象不允许被动态改变
3.5 新增保留字 implement, interface, let, package, private, protected, public, static, yield
4 ECMA5新增数组方法
indexOf(item,start)
格式:数组.indexOf(item, start);
参数: item 任意的数据 start下标 可以不传入,默认是0
功能:从数组中查找到第一次出现item元素下标,从start开始去找
返回值: -1 没有查找到 >=0 查找到元素的下标
forEach()循环
arr.forEach(function(item, index, arr){
/* item 当前遍历到的元素
index 当前遍历到的元素的下标
arr 数组本身 */
document.write(index + " -- " + item + " -- " + arr + "<br>");
});
map()遍历当前数组
var arr = [10, 20, 30, 40, 50];
arr.map(function(item,index,arr){
//遍历要做的事情,映射关系
document.write(item * 1.3 + ",");
})
filter()过滤
var arr = [10, 20, 30, 40, 50];
arr.filter(function(item,index,arr){
//过滤的条件
return index > 2;
})
some()某些
注:在数组中找到是否有符合条件的元素,有则返回true,没有则返回false
短路操作:只要找到符合条件的元素,后面便不再寻找
var arr = [10, 20, 30, 40, 50];
arr.some(function(item,index,arr){
return item > 20;
})
every()每一个
注:在数组中查找每一个元素是否符合条件,符合就返回true,不符合就返回false
短路操作:只要找到不符合条件的元素,后面的循环便终止了
var arr = [10, 20, 30, 40, 50];
arr.every(function(item,index,arr){
return item < 100;
})
reduce()归并
arr.reduce(function(prev,next,index,arr){
/*
prev 第一次是下标为0的元素
第二次开始 上一次遍历return的值
next 从下标1开始,当面遍历到的元素
arr 数组本身
*/
alert(prev + ", " + next);
return next;
})
第六章 字符串
1 字符串: 字符串就是一串字符,用单引号(双引号)括起来。字符串是JavaScript中的一种基本数据类型
2 字符串的定义
- (1) 定义一个字符串变量
var str = “str”;
- (2) var str = new String(“hello”);
此刻str为object(对象)类型,用new产生的变量都是引用类型,也叫对象
- (3) var str = String(“hello”);
此刻str为string类型
3 字符串的属性
(1)字符串.length 访问字符串中字符的个数
注:中文utf-8(三个字符代表一个汉字)
Gbk(两个字符代表一个汉字)
(2)访问字符中的单个字符
字符串.charAt(下标) 注:从0开始
字符串[下标]
注:字符串是只读,字符串一旦被声明就没有办法被修改,如果非要修改字符串,首先要销毁原来的字符串,再用另一个包含新字符的字符串填充该变量。
注:字符串中的字符也可以通过循环遍历
4 字符串的方法
charCodeAt()
格式:string.charCodeAt(index)
功能:访问字符串中对应下标的ASCII值
返回值:对应的ASCII值
String.fromCharCode(ASCII码值1,ASCII码值2,…)
格式:string.fromCharCode(ASCII码值)
功能:将传入的ASCII值转成对应的字符
返回值:字符
字符串的查找方法
indexOf()
格式:str.indexOf(subStr,start);
参数:第一个参数,要查找的字符串
第二个参数, start从哪个下标开始去查找,如果不传入,默认从下标0开始查找
功能:在str中查找subStr第一次出现的位置,从start这个位置开始查找
返回值:-1 说明没有找到 >=0 返回第一次出现的位置
lastIndexOf(subStr,start)
格式:str.lastIndexOf(subStr,start);
参数:在str中查找subStr最后一次出现的位置
参数:第二个下标是开始查找的位置,查找的下标是从右往左数的
返回值: -1 没有找到
search()
格式:str.search(subStr);
参数:字符串/正则表达式
功能:在str中查找subStr第一次出现的位置
返回值: -1 没有查找到
正则表达式
修饰符: i 忽略大小写 g 全局匹配
concat()
字符串拼接
字符串的提取:
substring
格式:str.substring(start,end);
功能:提取str字符串中的[start,end)这部分字符串,生成一个新字符串
返回值:新生成的字符串
substr
格式:str.substr(start,length);
返回值:新生成的字符串
slice
格式:str.slice(start,end);
注:和substring用法类似
replace()
格式:str.replace(oldStr,newStr);
功能:用newStr将oldStr替换掉,生成新的字符串
参数:
第一个参数传入的字符串只能替换一次
第二个参数 正则表达式
/xxx/ig i忽略大小写 g全局匹配
返回值:替换的生成的新的字符串
split() 字符串分割
格式:str.split(分割符,length);
参数:
第一个参数,用这个分割符对原字符串进行分割
第二个参数,控制返回的数组的元素格式,一般情况下不用
功能:用分割符对原字符串进行字符分割,将分割完毕后的子串,放在数组中返回
返回值:数组
注:
1、相邻的两个分割符,会产生空字符串""
2、分割符是空字符"",直接将每一个字符,单独分割成子串,放在数组中返回
toLowerCase() 转成全小写
toUpperCase() 转成全大写