jsp语法注意事项tips

1.let和var在for循环等语句块中作用域的区别

(var)

由于JavaScript的变量作用域实际上是函数内部,我们在for循环等语句块中是无法定义具有局部作用域的变量的:

'use strict';

functionfoo(){

for(vari=0; i<100; i++) {//}   

 i +=100;// 仍然可以引用变量i}

(let)

用let替代var可以申明一个块级作用域的变量:

'use strict';

functionfoo()

{varsum =0;

for(leti=0; i<100; i++) {        sum += i;    }// SyntaxError:

i +=1;}

(const)

ES6标准引入了新的关键字const来定义常量,const与let都具有块级作用域:

'use strict';

constPI =3.14;

PI =3;// 某些浏览器不报错,但是无效果!

PI;// 3.14

2.方法中this的使用

2.1 标准用法,this直接调用

var xiaoming = { 

   name:'小明', 

   birth:1990, 

   age:function(){

      var y =newDate().getFullYear();

      return y -this.birth; }};

xiaoming.age ;    //          function xiaoming.age()

xiaoming.age();  //       今年调用是25,明年调用就变成26了

绑定到对象上的函数称为方法,和普通函数也没啥区别,但是它在内部使用了一个this关键字,这个东东是什么?

在一个方法内部,this是一个特殊变量,它始终指向当前对象,也就是xiaoming这个变量。所以,this.birth可以拿到xiaoming的birth属性。

2.2 apply进行变量和方法绑定

虽然在一个独立的函数调用中,根据是否是strict模式,this指向undefined或window,不过,我们还是可以控制this的指向的!

要指定函数的this指向哪个对象,可以用函数本身的apply方法,它接收两个参数,第一个参数就是需要绑定的this变量,第二个参数是Array,表示函数本身的参数。

用apply修复getAge()调用:

function getAge( ) {

    var y =newDate().getFullYear();

    return y -this.birth;}      //最后一行代码将this绑定到xiaoming变量

var xiaoming = {    

    name:'小明',    

    birth:1990,   

    age: getAge};

xiaoming.age();// 25

getAge.apply(xiaoming, []);         // 25, this指向xiaoming, 参数为空

2.3 引入一个that参数

'use strict';

var xiaoming = { 

     name:'小明', 

     birth:1990, 

     age:function(){

         var that =this;// 在方法内部一开始就捕获this

         function getAgeFromBirth(){

              var y =newDate().getFullYear();

              return  y - that.birth;// 用that而不是this}

        return  getAgeFromBirth(); }};

   xiaoming.age();// 25

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

相关阅读更多精彩内容

  • 函数就是最基本的一种代码抽象的方式。 定义函数function abs(x) {if (x >=0){return...
    _我和你一样阅读 556评论 0 0
  • 注:本文所有知识点总结或摘抄自廖雪峰javascript教程,点击查看更详细的讲解。 1.javascript简介...
    hanyuntao阅读 595评论 0 13
  • 祥林嫂小传 枞阳中学401班 张慧敏 祥林嫂,何许人也?生辰八字一概不详,倒是死时挑了个吉利日子——鲁镇的“祝福”...
    春风草堂阅读 1,397评论 0 0
  • 我绝不允许,任何人偷窥 我藏在午夜的秘密 那是一片海洋 潜伏在流云的顶端 无休无止,无边无际 飘渺但又似乎触手可及...
    柴道一阅读 216评论 0 1
  • 本文是学习《The Swift Programming Language》整理的相关随笔,基本的语法不作介绍,主要...
    Arnold134777阅读 570评论 0 1

友情链接更多精彩内容