ECMAScript、JavaScript基本语法

文章详细介绍了ECMAScript中的基本语法特性,包括let和const声明变量、解构赋值、模板字符串、对象简写、方法简写、参数默认值、对象拓展运算符、箭头函数以及Promise的使用,阐述了ECMAScript作为JavaScript标准的重要性和作用。
摘要由CSDN通过智能技术生成

目录

一、ECMA

二、基本语法

1、let声名变量

2、const声明常量

3、解构赋值

4、模板字符串

5、声明对象简写

6、定义方法简写

7、参数的默认值

8、对象拓展运算符

9、箭头函数

10、Promise


一、ECMA

1、ECMA(European Computer Manufacturers Association)中文名称为欧洲计算机制造商协会,这个组织的目标是评估、开发和认可电信和计算机标准。1994 年后该组织改名为 Ecma 国际。

2、ECMAScript:ECMAScript 是由 Ecma 国际通过 ECMA-262 标准化的脚本程序设计语言。

3、什么是ECMA-262:Ecma 国际制定了许多标准,而 ECMA-262 只是其中的一个

4、ECMA-262 历史:ECMA-262 - Ecma International

 5、ECMAScript 和 JavaScript 的关系

一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?

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

因此,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)

二、基本语法

1、let声名变量

在传统的javaScript中用var声名变量,let替代var功能要比var高级,解决了var的部分缺陷

1、let定义的变量不可以重复声名,var可以

2、let有块级作用域,var没有块级作用域。说白了就是var局部生命变量不走该逻辑仍然可以打印,但是在java语句是不行的,但是let局部声明变量该段逻辑为false就不能打印。

2、const声明常量

//声明常量
const PI = 3.1415926
console.log(PI)

//声名常量的时候要有初始值
//const A

//一旦赋予了初始值就不能改变
// PI = 0.99

//规范:大写字母和下划线形式
const A_B_C = 1
console.log(A_B_C)

//对于数组和对象的元素修改, 不算做对常量的修改, 不会报错
const TEAM = ['郝樽','苏轼','曾国藩','欧阳修']
TEAM.push('寇准')
TEAM = 100
console.log(TEAM)

3、解构赋值

//ES6 允许按照一定模式从数组和对象中提取值,对变量进行赋值,
//这被称为解构赋值。
//1. 数组的解构
const F4 = ['苏轼','王安石','欧阳修','张载']
let [su,wang,ou,zhang] = F4
console.log(su)
console.log(wang)
console.log(ou)
console.log(zhang)

//2.对象解构
const sushi = {
  username:'苏轼',
  age:'千古',
  shiren:function(){
      console.log('写诗')
  }
}

let {username,age,shiren} = sushi
console.log(username)
console.log(age)
console.log(shiren)
shiren()

//3. 根据名字自动解构
// let (shiren) = sushi
// xieshi()

4、模板字符串

// ES6 引入新的声明字符串的方式 『``』 '' ""
//1. 声明
let str = `醉里挑灯看剑`
console.log(str);

//2. 内容中可以直接出现换行符
let htmlStr = 
`<ul>
<li>范仲淹</li>
<li><赵匡义/li>
</ul>`
console.log(htmlStr);

//3.拼接变量
let runman = '韩跑跑'
let out = `跑路第一人${runman}千古留名了`
console.log(out);

5、声明对象简写

//声明对象的简写形式
let username = '张居正'
let age = '千古'
let transform = function(){
  console.log('张居正度量田地改革');
}

// let zhangjuzheng = {
//   username:username1,
//   age:age1,
//   transform:transform1
// }

let zhangjuzheng = {
  username,
  age,
  transform
}

console.log(zhangjuzheng.username);
console.log(zhangjuzheng.age);
zhangjuzheng.transform();

6、定义方法简写

// 传统
let person1 = {
  sayHi: function () {
    console.log('无边落木萧萧下')
  },
}
person1.sayHi()

// ES6 ,省略了function
let person2 = {
  sayHi() {
    console.log('不尽长江滚滚来')
  },
}
person2.sayHi()

7、参数的默认值

//注意:函数在JavaScript中也是一种数据类型,JavaScript中没有方法的重载
function add(a,b = 0){
  console.log('a是:'+ a);
  console.log('b是:'+ b);
  return 100 + a;
}

let result = add(10);
console.log(result);

8、对象拓展运算符

//展开对象(拷贝对象)
let person = { name: '路飞', age: 17 }
// let someone = person //引用赋值
let someone = { ...person } //对拷拷贝,对象指向不同的地址
someone.name = '索隆'
console.log(person)
console.log(someone)

9、箭头函数

// function fn(a){
//   return 100 + a
// }

// let fn = function(a){
//   return 100 + a
// }

// let fn = a =>{
//   return 100 + a
// }

let fn = a => 100 + a

let result = fn(1)
console.log(result);

10、Promise

Promise 是ES6 引入的异步编程的新解决方案。语法上 Promise 是一个构造函数, 用来封装异步操作并可以获取其成功或失败的结果。

//异步编程解决方案:文件读取、ajax等
const fs = require('fs') //引入node.js本地文件扩展模块

//实例化Promise
//Promise对象有三个状态:初始化,成功,失败
//resolve:函数类型的参数,可以将Promise的状态设置为成功
//reject:函数类型的参数,可以将Promise的状态设置为失败
const p = new Promise((resolve,reject) => {
  //执行异步操作
  //第一个参数:读取文件的路径
  //第二个参数:读取过程中响应结果的处理
  fs.readFile('./虞美人.txt',(erro,data) =>{
    //当文件读取失败时错误对象 
    if(erro){
      reject(erro)//将Promise的状态改为失败
    }
    //当文件读取成功是的内容
    resolve(data)//将Promise的状态改为成功
  })
})

//p.then 当Promise的状态为成功时被调用
//p.catch 当Promise的状态为失败时被调用
p.then((response) => {
  //成功的业务逻辑
  console.log(response.toString());
}).catch((error) => {
  console.log('出错了');
  console.log(error);
})

总结:借助于Promise,可以使异步操作中的成功和失败的处理函数独立出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值