严格模式:
“use strict”
范围:全局模式(针对整个文件)
局部模式(针对某个函数)
“use strict”;
声明变量必须写var
age = 66 ;
console.log(age);
规律:严格模式最好一开始就使用;
函数内的形参不允许重复
// function fn(a,b,b){
// console.log(a,b);
// }
// fn(1,2,3)
arguments中的参数不允许修改
// function fn(a,b){
// console.log(a);
// console.log(b);
// b = 10;
// console.log(arguments);
// }
// fn(1,2)
函数中的this无法指向Windows;
// function fn(){
// console.log(this);
// }
// fn();
将use strict 写在函数内部,局部严格;
// info = '喝粥';
// function fn1(){
// "use strict";
// str = '勤学如春起之苗,不见其增日有所长';
// console.log(str);
// }
//fn1();
新增方法:
Indexof()返回目标元素在数组中的位置,没有值则返回-1(负一);
主要用于查找元素是否存在
// var arr = ['a','b','c','f'];
// console.log(arr.indexOf('e'));//返回-1(负一)
forEach(function(元素val,索引key){ }) 遍历数组,没有返回值
// var arr1 = ['台球','篮球','足球','排球'];
// //
// arr1.forEach(function (val,key){
// console.log(val,key);
// });
只接收元素
//只接收元素
// arr1.forEach(function (v) {
// console.log(v);
// })
map() 遍历数组,在不改变原数组的情况下,返回新的数组
// var arr2 = [3,4,5,6];
// //arr3用于接收返回值
// var arr3 = arr2.map(function (v,k) {
// // console.log(v,k);
// return v * 1.3;
// });
// console.log(arr3);
fiter(function(v,k){}) 也是遍历数组,只有bool值为true时,才返回
// var arr4 = [1,2,3,6,7,9];
// var arr5 = arr4.filter(function (v,index){
// //判断是否大于5;
// return val>5;
// })
// console.log(arr5);
字符串方法:
Indexof()查找元素是否存在,存在返回索引,不存在返回-1(负一);
// var str = "abcdefg";
// console.log(str.indexOf('e'));
// console.log(str.indexOf('h'));
charAt()返回指定位置的字符
// console.log(str.charAt(2));
substring(start,end) 截取字符串 [不包含结束]
// console.log(str.substring(0,2));
slice() 截取字符串
// var str1 = "hoeololoworlodo";
// console.log(str1.slice(1,3));
split(分隔符) 将字符串转化为数组
// console.log(str1.split('o'));
var str2 = “ I have a dream!”;
// console.log(str2.split(' '));//以空格为分隔符
Var str3 = ‘ 言笙 , 言情 , 本心 ,梦心’;
// console.log(str3.split(','));
//replace(“需要替换的字符串”,“替换之后的字符串”) 字符串的替换
// console.log(str1.replace('o','哈'));
repeat(重复次数) 重复输出字符
var str4 = 'Mydream';
// console.log(str4.repeat(5));
大小写的转化
var str5 = 'i want to ';
console.log(str5.toUpperCase()); //大写
var str6 = ‘I WANT TO’;
console.log(str6.toLowerCase()); //小写
字符串拼接
// 使用+ 实现字符串的链接
var name = '陈言笙';
var age = 18;
var sex = '女';
var str = '我是:'+name+' 年龄:'+age+' 性别:'+sex;
// console.log(str);
ES6拼接 最后使用 ` ` 变量使用${}
var str1 = `我是:${name},年龄是:${age},性别是${sex}`;
console.log(str1);
字符集和ASCII码
现象对比:
var a = '你好';
var b = '再见';
console.log(a>b);
输出为:true;
如果网页中使用UTF-8,最后编辑保存使用GBK,会出现乱码;
GKB编码:全称<<汉字内码扩展规范>>
是GB2312和ISO 10646.1国际标准前者向后者的过渡过程,一个承上启下的产物;
UTF-8编码:
是针对Unicode的可变长度字符编码,又称万国码.可以在网页上同时显示简体中文,繁体中文,及其他多国语言.(英文,韩文,日文);
扩展
值引用和址引用
值的引用
var num = 10;
var num1 = num;
num = 20;
// console.log(num1);
输出为10;
对象的地址引用
// var obj = {
// name:'zs',
// age:18
// };
// var obj1 = obj;
// obj.age = 22;
// console.log(obj1);
输出obj1为:age = 22;
name = zs;
形参就是局部变量
// function fn(x,y){
// x = x + 1;
// y = y + 1;
// console.log(x);
// console.log(y);
// }
// var x = 10;
// var y =20;
// fn(x,y);
// console.log(x);
// console.log(y);