• CoffeeScript学习(2)—— 变量


    变量基础

    对于变量的定义的话,形式如下所示

    xxx = yyy
    
    ------编译后------
    
    var xxx = yyy;
    

    保留字

    我们知道,在原生js中的保留字是不能作为变量名或者属性名的。如果我们确实需要特殊的属性名,则使用方括号的方式进行命名。

    像这样:var obj["class"] = "hello";

    但是这样的代码没有了一致性。在coffee里,做了统一的处理,我们可以来看看

    obj.class = 'Yika'
    ------编译后------
    obj["class"] = 'Yika';
    
    

    我们再不需要担心自己的变量名是保留字的了。但请记住,仅仅是处理保留字,不包括数字等不合法变量名。

    词法作用域

    我们不需要为变量提供一个var,因为coffee会为我们自行声明变量,让我们不需手动去写var。但鉴于这个的原因,在写深层次嵌套的代码时,请不要让外部变量和内部变量同名,增加麻烦。我们可以看一下例子。

    outer = 1
    changeNumber = ()->
      inner = 2
      outer = 3
    inner = new Obj()
    ----------编译后----------
    var changeNumber, inner, outer;
    
    outer = 1;
    
    changeNumber = function() {
      var inner;
      inner = 2;
      return outer = 3;
    };
    
    inner = new Obj();
    
    

    我们可以看到,outer是在外层定义的,然后在函数内部再定义一次,就会对外部变量进行赋值。而inner的表现却不尽相同。如果没定义过inner,则函数内部的inner会成为一个局部变量。鉴于这种比较容易出错的特性,所以我们建议一旦要使用局部变量,请一定不要和外部变量重名,以免带来不必要的麻烦。

  • 相关阅读:
    oracle行转列
    中国软件开发标准各项文档模板下载(附模版)
    熙熙SQLCE类熙熙
    用反射技术实现将泛型集合类中的数据导出成EXCEL
    WinCE 5.0 中文模拟器SDK(VS2005, VS2008)的配置
    OpenFrameworks x kinect x Android
    Ubuntu11.04软件源增强版
    信号量与自旋锁
    android 编写命令行测试程序
    在 Ubuntu 上换用 OSS4 声音系统
  • 原文地址:https://www.cnblogs.com/YikaJ/p/4321358.html
Copyright © 2020-2023  润新知