ECMA 规范 对JS的进行规范
ES5 ECMAscript指的javascript/JScript
ES6
【注释】:
1、单行注释
2、多行注释
【语句】
如何判断一条语句的结束。判断条件:分号。
书写格式:
关键词 标识符(变量名) 运算符 表达式 分号
【标识符命名规范】
1、不能以数字开头
2、可以包含:数字、字母、下划线、美元符号$
不可以包含其他字符
3、不许使用JS的关键字和保留字
4、大小写敏感(注:严格区分大小写)
软性要求:
1、望文知意
【数据类型】
1、基本数据类型
数值:Number
字符型:String 文本
布尔型:True False
null 判断用户是否输入东西
Undefined:undefined 标识符声明,未赋值。不是报错
symbol(对象时讲解)
2、引入数据类型
Object 对象
判断当前标识符的数据类型
console.log(typeof i);
console 输出
typeof
cls:清空终端栏
标识符
数据结构:【变量】
1、声明变量
ES5
关键词 标识符 分号
var F68 ;
ES6
let F68 ;
conset F68 ;
【var和let\conset区别?】
var声明的变量可以重复
let 、conset 声明的变量不可以重复
报错:
Identifier ‘F69’ has already been declared 重复声明
【let 和 const的区别】
let是声明变量
const是声明常量,赋值后不可以再更改(注:基础数据类型)
报错:
‘F69’ is not defined:变量没声明:遗漏声明。
【作用域】
let F68 = 1;
{
let F69=2;
}
console.log(F68);
console.log(F69);
当给一个变量赋值 ,但未添加关键字。则关键字为var
【全局变量问题】
let F68=10;
{
console.log(F68); //10
}
let F68=10;
{
console.log(F68); //F68 is not defined
let F68=3;
}
原因:先使用后声明
如果在局部作用域中,先使用了一个变量。
后面用let或const才声明该变量。则会无视全局变量。
即生成暂时性死区。
//eg1
let F68=1;
{
console.log(F68);//1
}
console.log(F68);//1
//eg2
let F69=2;
{
let F69 =3;
console.log(F69);//3 局部不会影响全局
}
console.log(F69);//2
//eg3
{
let F70 =4;
console.log(F70)//4
}
console.log(F70);//F70 is not defined
//eg4
let F71 =4;
{
F71 =5; //补个var var是全局变量,修改之前的全局变量
console.log(F71);//5
}
console.log(F71)//5
【输出undefined的2种方式】
let F68;
console.log(“F68:”+ F68); //写好变量 没赋值 un
console.log(typeof F69); //没有声明的变量 un
【null】
let F67=null;
console.log(F67);//null
console.log(typeof F67);//object NULL是引入数据类型
【数值型number】
1、整型
let F68=123;
console.log(F68);
console.log(typeof F68);
2、实数
let F68=12.3;
console.log(F68);
console.log(typeof F68);
3、NaN : Not a number
F68=NaN;
console.log(F68);//NaN
console.log(typeof F68);//number
【布尔型】
console.log(11);//true
console.log(null == undefined);//true
//undefined 是从null中衍生出来的 所以相等
console.log(1 NaN);//False
console.log(“ABC” == NaN);//False
console.log(NaN == NaN);//False
//NaN特别之处在于跟谁比都是False
【如何判断当前内容是不是非数字】
isNaN(NaN)
console.log(isNaN(NaN));
非数字的话是true,数字为False
数据类型转换
console.log(isNaN(NaN));//true
console.log(isNaN(false));//false
console.log(isNaN(“123”));//false 去掉“” 隐式转换
console.log(isNaN(“abc”));//true
console.log(isNaN(123));//false
console.log(isNaN(undefined));//true
console.log(isNaN(null));//false 0
console.log(null == 0);//false 死记硬背
console.log(null == undefined)//true 死记硬背
/字符型
let F68=’“1”’;
let F69=“A”;
let F70=1;
console.log(F68);
console.log(F70);
console.log(typeof F68);
console.log(F69);
console.log(typeof F69);
数字是黄色
- : 如果左右出现字符串是字符串的拼接
let account = “罗忆虹”;
let age = 22;
let gender =“女生”
let marry = “未婚”;
console.log(“大家好,我叫”+account+",我是"+gender+",我今年"+age+“岁,至今”+marry);
console.log(typeof(age + gender));//string
let i = “1”+3;
console.log(i)
let dropmoney=“200”;
let blance=300;
blance = blance + dropmoney;
console.log(blance);
let num =1+2+3+4+‘5’;
console.log(num);
let num1 =“1”+2+3+4+5;
console.log(num1);
let num2 =1+2+“3”+4+5;
console.log(num2);
【字符串模板】
// let account = “罗忆虹”;
// let age = 22;
// let gender =“女生”
// let marry = “未婚”;
console.log(大家好,我叫${account},我是${gender},我今年${age}岁,至今${marry}
);
标识符:变量
表达式:可以得到结果的公式
【length】
字符的长度,一个空格一个长度。
除了字符串,其他类型长度为undefined