摘要:
1、ECMAScript和java script的关系:
1996年11月,java script的创造者--Netscape公司,决定将java script提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。
该标准一开始就是针对java script语言制定的,但是没有称其为java script,有两个方面的原因。一是商标,java script本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。
因此ECMAScript和java script的关系是,前者是后者的规格,后者是前者的一种实现。
ES6就是指ECMAScript 6
尽管 ECMAScript 是一个重要的标准,但它并不是 java script 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 java script 实现是由以下 3 个不同部分组成的:
- 核心(ECMAScript)
- 文档对象模型(DOM) Document object model (整合js,css,html)
- 浏览器对象模型(BOM) Broswer object model(整合js和浏览器)
简单地说,ECMAScript 描述了java script语言本身的相关内容。
java script 是脚本语言
java script 是一种轻量级的编程语言。
java script 是可插入 HTML 页面的编程代码。
java script 插入 HTML 页面后,可由所有的现代浏览器执行。
-
- HTML文件标签内写代码:
<script> // 在这里写你的JS代码 </script>
- script src引入JS文件:
<script src="myscript.js"></script>
- HTML文件标签内写代码:
-
- 注释(注释是代码之母):
// 这是单行注释 /* 这是 多行注释 */
-
结束符:用分号 “;”为结束符。
- 注释(注释是代码之母):
①、java script的变量名可以使用下划线、数字、字母、$符组成,且不能以数字开头。
②、声明变量使用 var 变量名 的格式来进行声明
-
var name = 'sgt'; var age = 18; 这样就声明了一个变量,对比Python里面定义一个变量一个道理,只不过比Python麻烦点。
-
注意点:
- 变量名是区分大小写的
- 推荐使用驼峰式命名规则
- 保留字不能用作变量名
- 与下面let区别是,var声明的变量会随局部修改而改变
③、声明变量方法:let 变量名
- ES6新增了let命令,用于声明变量,其用法与var类似,但是声明的变量只在let命令所在的代码块内有效,例如:for循环的计数器就很适合使用let命令,里面声明的i变量在自增变化,用let声明就不会影响for循环外的其他i变量。
-
for (let i=0;i<10;i++){......}
④、ES6新增了const用来声明常量,一旦声明,其值就不会改变。
-
const PI = 3.1415; PI // 3.1415 如果修改的声明的常量则会报错: PI = 3 // TypeError: "PI" is read-only
java script拥有动态类型(也就是说数据类型随着声明的变量赋值类型而改变变量数据类型)
-
var x; // 此时x是undefined var x = 1; // 此时x是数字 var x = "Alex" // 此时x是字符串
①、数值(Number)
java script不区分整型和浮点型,只有一种数字类型。
-
var a = 12.34; var b = 20; var c = 5e3; // 5000 var d = 5e-3 // 0.005
还有一种类型:NaN(表示不是一个数字Not a Number)
-
parseInt('123'); //结果为 123 parseInt('helo') // 结果为NaN,NaN代表非数字值的特殊值,该属性用于指示某个值不是数字。 parseFloat(''123.456') //结果为123.456
②、字符串(String):
-
var a = 'hello'; var b = 'world'; var c = a+b ; //java script支持字符串直接用+号拼接 console.log(c); //结果为helloworld
-
字符串分割方法:slice(start,end)与substring(start,end)的区别:
相同点:
1、如果start=end,则返回空字符串
2、如果end参数不写,省略,则取到字符串末尾。
3、如果某个参数超过字符串的长度,则这个参数会被替换为string的长度。
不同点:
substring()特点:
1、如果start > end ,则start和end会被交换
2、如果参数是复数或者不为数字,则会将其替换为0
slice()特点:
1、如果start > end ,不会交换
2、如果start = -2,则切割从字符串末尾往前数第2个字符开始(包括该位置的字符)
3、如果stop = -3,则切割在从字符串末尾往前数的第3个字符结束(不包括该位置字符) - ES6引入了 模板字符串:(template string)
- 模板字符串是增强版字符串,用反引号标识(esc按键下面那个键),作用:
- 当做普通字符串
- 定义多行字符串
- 字符串中可以嵌入变量(类似格式化输出)
- 模板字符串是增强版字符串,用反引号标识(esc按键下面那个键),作用:
-
//当做普通字符串使用: `啦啦啦啦啦啦` //当做多行字符串使用: ` 轻轻地我走了, 正如我轻轻地来... ` //可以嵌入变量,类似那种格式化输出的形式: var name = 'sgt',age = '18'; ' Hello, ${name}, are you ${age} years old? '
注意:如果在字符串内使用反引号,则需要用转义字符(反斜杠)转义一下。③、布尔值(Boolean):
true和false都是小写,这点需要注意! -
var a = true; var b = false; Tips:空字符串("")、0、null、undefined、NaN都是false
- null与undefined的区别:
---- null :表示值为空,一般在需要指定或者清空一个变量时候才会使用,如name = null;
---- undefined: 表示当声明一个变量但未