严格模式
【语法规则更加严谨】
开启严格模式:在该作用域下写‘use strict’
1、严格模式下,定义隐式全局变量报错
num2 = 100 //num2 is not defined
2、严格模式下,不允许函数形参同名
function fn(a,a){} //Duplicate parameter name not allowed in this context
3、在全局作用域定义的函数中的this指向window
function fn(){
console.log(this)
}
fn()
但在严格模式下,函数中的this没有值 undefine
创建字符串的方法
字符串是基本数据类型也是临时包装数据类型;
临时包装数据类型:当基本数据类型在使用只用对象才有的属性和方法时,会临时变成对象,使用属性和方法完毕后,立马变回基本数据类型;
1、字面量创建
var str1 = 'hell0'
console.log(str1)
2、系统构造函数创建
var str = new String('abcdef')
//构造函数创建的字符串有lenth属性,表示字符串的长度
console.log(str.length); //6
//可以通过数组关联语法获取字符串中的具体字符,字符串[索引]
console.log(str[0]); //a
字符常用方法
1、charAt(索引) 根据索引找到字符串中对应的字符;若没有该索引,则返回空字符串;
var str = 'hellothankyou'
console.log(str.charAt(0)); //h
console.log(str.charAt(100)); // 空字符串
2、charCodeAt(索引) 根据索引找到字符串中红对应的字符编码并返回;若没有则返回NaN;
var str = 'hellothankyou'
console.log(str.charCodeAt(0)); //104
console.log(str.charAt(100)); // NaN
3、indexOf(字符) 根据字符在字符串中查找,找到了返回对应的索引;找不到返回-1;
var str = 'hellothankyou'
console.log(str.indexOf('h')); //0
console.log(str.indexOf('s')); // -1
console.log(str.indextOf('0',5)) //从索引5开始查找
4、substring(开始索引,结束索引) 根据索引截取对的字符并返回,包前不包后;
var str = 'hellothankyou'
console.log(str.substring(0,3)); //hel
console.log(str.charAt(3)); //lothankyou 只写一个索引,截取从该索引到最后
5、sunstr(开始索引,截取个数) 从开始索引截取指定个数的字符串字符
var str = 'hellothankyou'
console.log(str.substr(0,5)); // hello
console.log(str.substr(-2,2)); //ou -1代表字符最后一个,截取顺序还是从左到右
6、toLowerCase() 大写转为小写并返回
var str = 'ABCDE'
console.log(str.toLowerCase()); //abcde
7、toUpperCase() 小写转为大写
var str = 'abcde'
console.log(str.toUpperCase); //ABCDE
8、split(字符) 将字符串按给定的字符串爆开,组成数组返回
var str = 'hello-say -hi'
console.log(str.split('-')); //['hello','say','hi']
console.log(str.split('')); //['h','e','l','l','o','s','a','y','h','i']
console.log(str.split()); //['hello-say -hi']
9、replace(指定的字符,替换的字符) 按指定字符在字符串中查找,找到则替换,并返回
var str = '我们牛逼'
console.log(str.replace('牛逼','**')); //我们**
var str = '我们你们他们'
console.log(str.replace('我','*').replace('你','*').replace('他','*')); //*们*们*们