一.ES5/String的新增
- 什么是ES5,就是ECMAScript5
- 我们都知道 js 是一个相对不很严谨的语言
- 而且开发的时候,一些代码也不是很严格要求
- 而严格模式就是对开发的时候写的一些内容做了要求
- ES的版本更新,向下兼容,老版本并没有全部废弃,新版本只是在老版本的基础上新增
1.1严格模式(了解)
- 1.严格模式:更严格的开发模式
- 2.为什么有严格模式:因为js的代码规范非常不严格
1.2严格模式的意义是:
- 1.消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 2.消除代码运行的一些不安全之处,保证代码运行的安全;
- 3.提高编译器效率,增加运行速度;
- 4.为未来新版本的Javascript做好铺垫
1.3严格模式的开启方式
1.4严格模式开启之后的变更
- 1.声明变量必须加关键字(var)
- 2.不允许参数名重复
- 3.没有明确隶属对象的函数中的this(执行了)指向undefined
- 4.arguments的内容不会被形参的改变而影响
- 5.arguments.callee被禁止使用
"use strict";
1.声明变量必须加关键字(var)
a = 10;a = 20;console.log(a);
2.不允许参数名重复
function fn(a,b,b){
console.log(a);
console.log(b);
}
fn("hello","world",123)
3.没有明确隶属对象的函数中的this(执行了)指向undefined
function fn(){
console.log(this);
}
fn();
4.arguments的内容不会被形参的改变而影响
function fn(a){
a = 10;
console.log(arguments[0]);
console.log(a);
}
fn("hello")
5.arguments.callee被禁止使用
function fn(){
console.log(arguments.callee);
}
fn("a","b","124","hello")
6.禁止使用
var obj = {a:"hello",b:10,c:123}
with(obj){
console.log(a)
console.log(b)
console.log(c)
}
7.禁止进制的使用
var a = 017;
console.log(a);
二. ASCII 字符集(了解)
- 我们都知道,计算机只能存储
0101010
这样的二进制数字 - 那么我们的
a ~ z
/ A ~ Z
/ $
/ @
/… 之类的内容也有由二进制数字组成的 - 我们可以简单的理解为,
a ~ z
/ A ~ Z
/ $
/ @
/… 之类的内容都有一个自己的编号,然后在计算机存储的时候,是存储的这些编号,我们看的时候,也是通过这些编号在解析成我们要看到的内容给我们看到 - 转换方法必须要会
- 字符转U编码:要转换的字符.charCodeAt()
- U编码转字符:String.fromCharCode(“U编码”)
- 输入中文的范围:4e00 - 9fa5
unicode 编码
- 我们看到了,ASCII 只有这 128 个字符的编码结构
- 但是因为 ASCII 出现的比较早,而且是美国发明的,早起时候这些内容就够用了
- 因为存储一些英文的内容,传递一些英文的文章什么的都够用了
- 那么对于这个世界来说肯定是不够用的
- 因为我们的汉字没有办法存储,包括一些其他国家的语言也没有办法存储
- 所以就出现了 unicode 编码,也叫(万国码,统一码)
- unicode 对照表就是一个和 ASCII 一样的对照表,只不过变得很大很大,因为存储的内容特别的多
- 而且包含了世界上大部分国家的文字,所以我们的文字和字符现在在存储的时候,都是按照 unicode 编码转换成数字进行存储
- 我们的 UTF-8 就是一种 8 位的unicode字符集