let关键字,const关键字,变量的解构赋值,模版字符串

let关键字

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <title>01_let关键字</title>

</head>

<body>

<button>测试1</button>

<br>

<button>测试2</button>

<br>

<button>测试3</button>

<br>

<!--

***let

1. 作用:

  * 与var类似, 用于声明一个变量

2. 特点:

  * 在块作用域内有效

  * 不能重复声明

  * 不会预处理, 不存在变量提升(预处理、预加载、预解析)

3. 应用:

  * 循环遍历加监听

  * 使用let取代var是趋势

-->

<script type="text/javascript">

  // console.log(username);//当下一行是let时,没有预解析,会报错    当下一行是var时,不会报错,但值是undefined

  let username = 'kobe';//

  // let username = 'wade';//不能重复定义

  // console.log(username);

  //循环遍历加监听

  let btns = document.getElementsByTagName('button');//获取三个btn

  for(var i=0; i<btns.length;i++){

    var btn = btns[i];//——> 拿到其中的一个btn = btns的下标为i的元素

    // 无法获取正确的索引

    btn.onclick = function() {

      alert(i);

    };

    //方法一:把for(var i=0; i<btns.length;i++)里的var换为let

    /*方法二:闭包的方式解决

    (function (i) {

      btn.onclick = function () {

        alert(i);

      }

    })(i);//利用闭包的原理,后面带括号,就是要立即执行

    */

  }

</script>

</body>

</html>

const关键字

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <title>02_const关键字</title>

</head>

<body>

<!--

1. 作用:

  * 定义一个常量

2. 特点:

  * 不能修改

  * 其它特点同let

3. 应用:

  * 保存不用改变的数据

-->

<script type="text/javascript">

// var KEY = 'NBA';//var可修改

// KEY = 'CBA';

// console.log(KEY);//CBA

const KEY = 'NBA';//const不可修改

// KEY = 'CBA';//当为把var换成const时,不能写,会报错

console.log(KEY);

</script>

</body>

</html>

变量的解构赋值

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <title>03_变量的解构赋值</title>

</head>

<body>

<!--

1. 理解:

  * 从对象或数组中提取数据, 并赋值给变量(变量可多个)

2. 对象的解构赋值

  let {n, a} = {n:'tom', a:12}

3. 数组的解构赋值

  let [a,b] = [1, 'hello'];

4. 用途

  * 给多个形参赋值

-->

<script type="text/javascript">

let obj = {username: 'kobe', age: 40};

// let username = obj.username;

// let age = obj.age;

// let xxx = obj.xxx;//undefined

// 对象的解构赋值

// 在解构赋值的时候,大括号里左边向右边要值的时候,必须是obj里已有的属性才可以,没有的话,返回的是undefined

// let {username, xxx} = obj;//相当于let xxx = obj.xxx;//undefined

// let {username, age} = obj;//相当于let age = obj.age;

// console.log(username, age);//kobe  40   意味着username和age是全局变量

// 当不想全要时,例如:只要年龄

let {age} = obj;//声明了一个全局变量age

console.log(age);

//数组的解构赋值

let arr = [1,3,5,'abc',true];

// let [a,b,c,d,e] = arr;//全局定义了5个变量

// console.log(a,b,c,d,e);

// let [a,b] = arr;

// console.log(a,b);//1  3

let [,,a,b] = arr;

console.log(a,b);//5  'abc'

//多个形参来赋值

// function foo(obj){

//   console.log(obj.username, obj.age);

// }

function foo({username, age}){//{username, age} = obj;

  console.log(username, age);

}

foo(obj);//kobe  40

</script>

</body>

</html>

模版字符串

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <title>04_模板字符串</title>

</head>

<body>

<!--

1. 模板字符串 : 简化字符串的拼接

  * 模板字符串必须用 `` 包含

  * 变化的部分使用${xxx}定义

-->

<script type="text/javascript">

let obj = {username: 'kobe', age: 40};

//方式一:

// let str = '我的名字叫:' + obj.username + ',我的年龄:' + obj.age;

//方式二:(简单)

str = `我的名字叫:${obj.username},我的年龄:${obj.age}`;

console.log(str);//我的名字叫:kobe,我的年龄:40

// `https://s.taobao.com/search?q=${obj.xx}&refpid=${obj.xx}&source=${obj.xx}&style=${obj.xx}&pvid=${obj.xx}&clk1=${obj.xx}&spm=${obj.xx}`

</script>

</body>

</html>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容