ES5的语法:
ECMAScript的第5个版本
他是公认的兼容性最好的版本
我们将来的项目,真正去运行的代码是es5的代码
es2015是ES6
ES3的不合理地方:
省略var定义变量
函数的形参可以同名
js中有一个关键字this - this关键字是代表一个变量的 - 在不同的作用域中代表的值是不一样的
严格模式:
严格模式的语法 :
加一个字符串 - 'use strict' -- 全局顶部或局部的顶部
全局放了可以约束所有代码
局部放了只能约束局部代码
不允许省略var定义变量
不允许函数的形参同名
不允许普通函数中的this代表window
严格模式的优点:
1.消除了一些不合理的语法,规避了一些不必要的错误
2.语法更规范了,运行效率更高了
字符串:
字符串的认识:
字符串可以像数组一样取下标
能取下标就能遍历
字符串也有length长度
字符串中的length不允许改
字符串不允许修改、删除、添加字符 - 字符串是一种只读数据
字符串的比较:
字符串也能进行大小比较
字符串的比较规则是逐字符比较
字符串的比较规则是逐字符比较:
0-9:48-57
A-Z:65-90
a-z:97-122
汉字:unicode - 万国码
字符串方法:
charAt - 通过指定下标获取到对应的字符
charCodeAt - 通过指定下标获取到对应字符的阿斯克码
语法:字符串.charCodeAt(下标) - 返回字符对应的阿斯克码
String.fromCharCode - 通过指定的阿斯克码获取到他对应的字符
语法:String.fromCharCode(阿斯克码) - 返回字符
split - 将字符串通过指定的分隔符,组成数组
语法:字符串.split(分隔符) - 返回数组
split的第二个参数是数字,表示我们在数组中要保留几个元素
如果不加参数,默认将整个字符串当做数组的元素
空字符串做分隔符,会将每个字符都作为数组的元素
startsWith - 判断字符串是否以某个字符或小字符串开头的
语法:字符串.startsWith(字符/小字符串) - 返回布尔值
endsWith - 判断字符串是否以某个字符或小字符串结尾的
语法:字符串.endsWith(字符/小字符串) - 返回布尔值
includes - 判断字符串中是否包含某个字符或小字符串
语法:字符串.includes(字符/小字符串) - 返回布尔值
indexOf - 查找字符或小字符串在字符串中第一次出现的下标
语法:字符串.indexOf(字符/小字符串) - 找到了就返回下标,找不到就返回-1
第二个参数表示从哪个下标开始查找
lastIndexOf - 查找小字符串或字符在字符串中最后一个出现的下标
语法:字符串.lastIndexOf(字符/小字符串) - 找到就返回下标,找不到就返回-1
第二个参数表示将下标几当做是字符串结尾
slice - 截取字符串
语法:字符串.slice(开始下标, 结束下标) - 返回一小段字符串
包前不包后
省略第二个参数,表示截取到末尾
省略第二个参数时,就可以第一个参数也省略 - 从头截取到末尾
substr - 截取字符串
语法:字符串.substr(开始下标, 截取的长度) - 返回一小段
省略第二个参数,默认截取到末尾
substring - 截取字符串
语法:字符串.substring(开始下标, 结束下标) - 返回一小段
包前不包后
省略第二个参数就是截取到末尾
trim - 去除字符串左右两边的空格字符
语法:字符串.trim()
trimLeft - 去除左边空格
语法:字符串.trimLeft()
trimRight - 去除右边空格
toUpperCase - 所有字符都转大写
语法:字符串.toUpperCase()
toLowerCase - 转小写
语法:字符串.toLowerCase()
replace - 替换字符串中指定的一小段
语法:字符串.replace(被替换的那一小段, 新的内容) - 返回替换后的字符串
三个截取方法的区别
slice
可以使用负数表示下标
因为截取一定是从左向右的,开始下标在结束下标的右边,就截取到字符串
substr
可以用负数表示开始下标
substring
不能用负数表示下标
如果开始下标在结束下标的右边,就先交换两个参数的位置 - 然后截取
如果使用了负数表示下标,就将负数先转成0去截取