Js:ES6~ES11基础语法(一)

一、let变量声明以及const定义常量

let变量声明

特点:

  1. 变量不能重复声明

  2. 块级作用域

  3. 不存在变量提升

  4. 不影响作用域链

const定义常量

特点:

  1. 一定要赋初始值

  2. 一般常量使用大写(默认潜规则)

  3. 常量值不能修改

  4. 块级作用域

  5. 对于数组和对象的元素修改,不算对常量的修改,不会报错

二、变量的解构赋值

定义: ES6允许按照一定模式从数组和对象中提取值,对变量进行赋值,这被称为解构赋值.

1、数组的解构

2、对象的解构

三、模板字符串

定义: ES6引入新的声明字符串的方式

特点:

  1. 声明
复制代码
let str = `1233`;
  1. 内容中可以直接出现换行符

  2. 变量拼接使用${}

复制代码
let loveset = 'Amumu';
let out = `${lovest}是最帅的`;

四、简化对象写法

定义: ES6允许在大括号里面,直接写入变量和函数,作为对象对属性和方法

五、箭头函数

定义: ES6 允许使用箭头(=>)定义函数

特点:

  1. this是静态的,this始终指向函数声明时所在作用域下的this的值

  2. 不能作为构造函数实例化对象

  3. 不能使用arguments变量

  4. 箭头函数的简写

a、省略小括号,当形参有且只有一个的时候

b、省略花括号,当代码体语句只有一条语句的时候,此时return必须省略,而且语句的执行结果就是函数的返回值

注意:

  1. 箭头函数适合与this无关的回调,定时器,数组的方法回调

  2. 箭头函数不适合与this有关的回调,例如: 事件回调、对象的方法

javascript 复制代码
// 1.this是静态的,this始终指向函数声明时所在作用域下的this的值
function getName() {
    console.log(this.name)
}

let getName2 = () => {
    console.log(this.name)
}

window.name = '123'
const school = {
    name: 'school'
}

getName.call(school) // school
getName2.call(school) // 123

六、函数参数的默认值

定义: ES6允许函数参数赋值初始值

  1. 形参初始值,具有默认值的参数,一般位置要靠后(默认情况)

  2. 与解构赋值结合

javascript 复制代码
//ES6 允许给函数参数赋值初始值
//1. 形参初始值 具有默认值的参数,一般位置要靠后(潜规则)
function add(a,c=10,b) {
   return a + b + c;
}
let result = add(1,2);
console.log(result); // NaN

//2. 与解构赋值结合
function connect({host="127.0.0.1", username,password, port}){
    console.log(host) // test.com
    console.log(username) //root
    console.log(password) // root
    console.log(port) // 3306
}
connect({
    host: 'test.com',
    username: 'root',
    password: 'root',
    port: 3306
})

七、rest参数

定义: ES6引入rest参数,用于获取函数的实参,用来代替arguments

注意: rest参数必须放到参数最后

javascript 复制代码
// ES6 引入 rest 参数,用于获取函数的实参,用来代替 arguments
// ES5 获取实参的方式
 function date(){
     console.log(arguments); // ['白芷','阿娇','思慧']
 }
 date('白芷','阿娇','思慧');

// rest 参数
 function date(...args){
     console.log(args);// ['白芷','阿娇','思慧'] filter some every map 
 }
 date('阿娇','柏芝','思慧');

// rest 参数必须要放到参数最后
function fn(a,b,...args){
    console.log(a); // 1
    console.log(b); // 2
    console.log(args); // [3, 4, 5, 6]
}
fn(1,2,3,4,5,6);
相关推荐
江畔柳前堤14 分钟前
GO01-Go 语言与主流编程语言深度对比
开发语言·人工智能·后端·微服务·云原生·golang·go
世界哪有真情1 小时前
拿人类意识卡 AI?等于用 bug 验收正式产品
前端·人工智能·后端
:-)1 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
鱼樱前端1 小时前
别再自己拼凑了!这款 Vue 3.5+ 严肃产品级组件库,把 AI 对话、工作流和复杂数据全包了!
javascript·vue.js·github
Listen·Rain2 小时前
Vue3:setup详解
前端·javascript·vue.js
GIS阵地2 小时前
QgsRasterDataProvider 完整详解(QGIS 3.40.13 C++)
开发语言·c++·qt·开源软件·qgis
Patrick_Wilson2 小时前
修好 bug 只是开始:一次由监控需求反向重构日志结构的复盘
前端·监控·数据可视化
yaoxin5211232 小时前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python
kyriewen3 小时前
面试官让我优化一个卡死的表格,我打开 Claude 五秒重写,他放下咖啡问我要不要来当组长
前端·javascript·面试
阿里嘎多学长3 小时前
2026-07-14 GitHub 热点项目精选
开发语言·程序员·github·代码托管