带你认识Javascript、ES5和ES6的介绍和区别

带你认识Javascript、ES5和ES6的介绍和区别**es5老版本**var声明语句声明一个变量,并可选地将其初始化为一个值。 vara=100;alert(a);**es6新版本**let语句声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。 letb=12;alert(b);…

大家好,欢迎来到IT知识分享网。

一、什么是Javascript?

  • JavaScript(简称“JS”)一种动态类型、弱类型、基于原型的客户端脚本语言,用来给HTML网页增加动态功能。

  • 动态:
    在运行时确定数据类型。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。

  • 弱类:
    计算时可以不同类型之间对使用者透明地隐式转换,即使类型不正确,也能通过隐式转换来得到正确的类型。

  • 原型:
    新对象继承对象(作为模版),将自身的属性共享给新对象,模版对象称为原型。这样新对象实例化后不但可以享有自己创建时和运行时定义的属性,而且可以享有原型对象的属性。

PS:新对象指函数,模版对象是实例对象,实例对象是不能继承原型的,函数才可以的。

JavaScript由三部分组成:

1. ECMAScript(核心)
作为核心,它规定了语言的组成部分:语法、类型、语句、关键字、保留字、操作符、对象
2. DOM(文档对象模型)
DOM把整个页面映射为一个多层节点结果,开发人员可借助DOM提供的API,轻松地删除、添加、替换或修改任何节点。
3. BOM (浏览器对象模型)
支持可以访问和操作浏览器窗口的浏览器对象模型,开发人员可以控制浏览器显示的页面以外的部分。
在这里插入图片描述


二、ECMAScript和JavaScript?

ECMAScript和JavaScript到底是什么关系?很多初学者会感到困惑,简单来说,ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现。

1996年11月,JavaScript的创造者Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这种语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript。这个版本就是ECMAScript 1.0版。


三、什么是ES5?

ECMAScript 5.1 (或仅 ES5) 是ECMAScript(基于JavaScript的规范)标准最新修正。 与HTML5规范进程本质类似,ES5通过对现有JavaScript方法添加语句和原生ECMAScript对象做合并实现标准化。ES5还引入了一个语法的严格变种,被称为”严格模式(strict mode)”

1. strict模式
严格模式,限制一些用法,‘use strict’;

2. Array增加方法
增加了every、some 、forEach、filter 、indexOf、lastIndexOf、isArray、map、reduce、reduceRight方法

PS: 还有其他方法 Function.prototype.bind、String.prototype.trim、Date.now

3. Object方法
Object.getPrototypeOf
Object.create
Object.getOwnPropertyNames
Object.defineProperty
Object.getOwnPropertyDescriptor
Object.defineProperties
Object.keys
Object.preventExtensions / Object.isExtensible
Object.seal / Object.isSealed
Object.freeze / Object.isFrozen

ES5老版本

var 声明语句声明一个变量,并可选地将其初始化为一个值。
代码如下(示例):

		var a=100;
        alert(a);

四、什么是ES6?

ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。

ES6的目标,是使得JavaScript语言可以用来编写大型的复杂的应用程序,成为企业级开发语言。

ES6新增语法

1、let

ES6中新增了用于声明变量的关键字

let声明的变量只在所处于的块级有效

代码如下(示例):

 if (true) { 
    
     let a = 10;
 }
console.log(a) // a is not defined

注意: 使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特性。

不存在变量提升

代码如下(示例):

console.log(a); // a is not defined 
let a = 20;

2、let

声明常量,常量就是值(内存地址)不能变化的量

具有块级作用域

代码如下(示例):

  if (true) { 
    
     const a = 10;
 }
console.log(a) // a is not defined

声明常量时必须赋值

代码如下(示例):

const PI; // Missing initializer in const declaration

3、解构赋值

ES6中允许从数组中提取值,按照对应位置,对变量赋值,对象也可以实现解构

数组解构

代码如下(示例):

 let [a, b, c] = [1, 2, 3];
 console.log(a)//1
 console.log(b)//2
 console.log(c)//3
//如果解构不成功,变量的值为undefined

对象解构

代码如下(示例):

 let person = { 
    name: 'zhangsan', age: 20 }; 
 let { 
    name, age } = person;
 console.log(name); // 'zhangsan' 
 console.log(age); // 20

 let { 
   name: myName, age: myAge} = person; // myName myAge 属于别名
 console.log(myName); // 'zhangsan' 
 console.log(myAge); // 20

4、箭头函数

ES6中新增的定义函数的方式。
代码如下(示例):

() => { 
   } //():代表是函数; =>:必须要的符号,指向哪一个代码块;{}:函数体
const fn = () => { 
   }//代表把一个函数赋值给fn

函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号
代码如下(示例):

function sum(num1, num2) { 
    
     return num1 + num2; 
 }
 //es6写法
 const sum = (num1, num2) => num1 + num2; 

如果形参只有一个,可以省略小括号
代码如下(示例):

 function fn (v) { 
   
     return v;
 } 
//es6写法
 const fn = v => v;

5、剩余参数

剩余参数语法允许我们将一个不定数量的参数表示为一个数组,不定参数定义方式,这种方式很方便的去声明不知道参数情况下的一个函数
代码如下(示例):

function sum (first, ...args) { 
   
     console.log(first); // 10
     console.log(args); // [20, 30] 
 }
 sum(10, 20, 30)

es6新版本

let 语句声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。
代码如下(示例):

		let b=12;
        alert(b);

提示:如有不对请多多指教!希望给您带来帮助!多谢。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22869.html

(0)
上一篇 2023-12-20 21:45
下一篇 2023-12-21 19:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信