转载请注明来源:http://blog.csdn.net/caoshiying?viewmode=contents

这篇文章针对的是有2年以上编程经验的朋友们参考的,作参考资料之用,不从基础讲起。

1.1.1. 标识符

标识符,identifier,是用于给程序中变量、类、方法等命名的符号,是程序文本组织的基本元素。

只接受大写字母、小写字母、数字以及下划线,不能以数字开头。

代码区分大小写。

代码结尾可以不写分号。

当多句表达式处于同一行时必须用分号隔开多句。

变量可以先使用后声明,但不同的浏览器会产生不同的结果。

1.1.2. 常量与变量的声明

变量声明用var关键字表示,不严格区分数据类型。

以下代码:

var x=1;
var y='Hello World!'

其中x和y是变量,给它们赋值的是常量。

字符串用单引号与用双引号的作用是相同的,但必须配对。

单引号、反斜框是转义字符,两次转义表示转义字符本身。

一对配对的处于同一行的斜杠可以声明正则表达式Regex类型的对象。例如:

var g=/^\d{8+}$/;

上面代码中的变量g是Regex类型的对象。

1.1.3. 数值

整数最多15位,小数最多17位。

浮点运算不是100%准确。比如:

var x=0.2+0.1;//x的值实际上是0.30000000000000004

有小数点的表示小数,没有小数点的表整数

e不是表示自然底数的多少次幂,而是表示当前数字乘以或者除以10的多少次方,例如:

var y=123e5;    // 12300000
var z=123e-5;   // 0.00123

0开头表示八进制,0x开头表示十六进制。

Number对象的静态属性:

MAX VALUE//最大数字
MIN VALUE//最小数字
NEGATIVE INFINITIVE//无穷大
POSITIVE INFINITIVE//无穷小
NaN//不是数字

数字转换成字符串的方法之一是直接把数字与字符串相加。字符串转换成数字有几个以parse开头的内置函数提供转换功能。Number类型也有静态方法提供转换功能。

1.1.4. 数据类型

JS不严格区分长整型、短整型、浮点型、双精度型、字节型、字符型、有符号数字型、无符号数字型等,只区分数字和字符串。

1.1.5. 数组

JavaScript允许同时存放不同数据类型的元素(Element)。例如:

var x=[1,2.0,"3"];

1.1.6. 流程控制

for:循环控制流程

while/do...while:循环控制流程

break:中断循环

continue:跳过本次循环的后续代码继续下一次循环。

if/if...else/if...else if...else:选择控制流程

switch...case...default...break:选择分支流程。

标签:JavaScript允许用户在流程控制前增加标签,这样可以调转到这里。

1.1.7. 运算符与表达式

运算符包括算术运算符、比较运算符、逻辑运算符与位运算符。

运算符优先级与Java基本相同。

“===”是全等符,表示两侧的变量的值和数据类型必须都相同。

非boolean类型不能直接放在比较运算表达式中,可以通过逻辑运算符放在比较运算表达式中。例如判断一个对象是否不是null:

if(!!obj){
}

但不可以这样写:

if(obj){
}

下面的特殊标志

"use strict"

相当于C++的宏定义,可以放在任间代码文件、任意方法名称的首部。它指示编译器启用严格的语法检查。

"undefined"

表示未定义,可用来确定一个类的对象是否处于无效状态。

1.1.8. 正则表达式

同一行代码用两个斜杠包围起来的字符串表示一个正则表示式类型的对象,此对象拥用Regex类型的所有方法。正则表达式内容本身的含义遵循正则表示式的规范,而不是JavaScript的语法规范。

正则表达式语法规则参见:JavaScript Regex。

1.1.9. 狭义函数

不属于任何类型,生命周期是文档生命周期。函数的参数列表没有数据类型,形参可以接收任意数据类型的实参。函数名称与参数名称列表都是可选的。函数不需要声明返回值的类型,任何语句在任意位置都可以返回,多个条件判断语句中可以在多个位置写返回值类型各不同的代码。规范如下:

function my_function(my_params){
}

1.1.10.字符串格式化

在ECMAScript6之前JavaScript语言自身没有提供像其它高级编程语言一样的字符串格式化方式。一个可选的方法如下:

String.prototype.format = function(args) {
    var result = this;
    if(arguments.length > 0) {   
        if(arguments.length == 1 && typeof (args) == "object") {
            for (varkey in args) {
                if(args[key]!=undefined){
                    varreg = new RegExp("({" + key + "})","g");
                    result= result.replace(reg,args[key]);
                }
            }
        }
        else {
            for (var i= 0; i < arguments.length; i++) {
                if(arguments[i] != undefined) {
                    //var reg= new RegExp("({[" + i + "]})","g");//这个在索引大于9时会有问题
          var reg=new RegExp("({)" + i + "(})",arguments[i]);
                }
            }
        }
    }
    return result;
}

1.1.11.异常处理

语法范例:

try{
    var x=1/0;
    console.log(myObj.name);
}catch(e){
    console.log(e);
}finally{
    console.log("除零错误也阻止不了执行到我这里。");
}

AngularJS系列之JavaScript语法的更多相关文章

  1. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  2. HTML5数字输入仅接受整数的实现代码

    这篇文章主要介绍了HTML5数字输入仅接受整数的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. html5简介_动力节点Java学院整理

    这篇文章主要介绍了html5简介,用于指定构建网页的元素,这些元素中的大多数都用于描述网页内容,有兴趣的可以了解一下

  5. ios – 如何从变量访问属性或方法?

    是否可以使用变量作为Swift中方法或属性的名称来访问方法或属性?在PHP中,您可以使用$object->{$variable}.例如编辑:这是我正在使用的实际代码:解决方法你可以做到,但不能使用“纯粹的”Swift.Swift的重点是防止这种危险的动态属性访问.你必须使用Cocoa的Key-ValueCoding功能:非常方便,它完全穿过你要穿过的字符串到属性名称的桥,但要注意:这里是龙.

  6. iOS &gt;&gt;块&gt;&gt;更改块外部的变量值

    我不是在处理一个Object并改变它,就像我的mString一样.我希望’center’属性的行为类似于myInt,因为它是直接访问的C结构,而不是指向对象的指针.我希望’backgroundColor’的行为类似于我的imstring,因为它是一个指向一个新对象的对象的指针,不是吗?

  7. ios – Xcode Bot:如何在post触发器脚本上获得.ipa路径?

    我正在使用机器人来存档iOS应用程序,我需要获取.ipa产品路径才能将其发布到我们的分发系统中.机器人设置:并使用脚本打印所有env变量,其中不包含ipa文件的路径.此外,一些变量指向不存在的目录,即:XCS_OUTPUT_DIR这里的env变量输出:除此之外,我还能够确认.ipa文件是在另一个文件夹中创建的(/IntegrationAssets//

  8. ios – 使用附加字符串本地化Info.plist变量

    我正在尝试本地化应用程序的名称,同时仍然能够根据构建配置追加字符串.所以目前它被设置为:该设置定义为:通过这种方式,我们可以为应用程序添加后缀以用于不同的beta版本.问题是,当我们尝试本地化本地化的InfoPlist.strings中的应用程序显示名称时,就像这样我们覆盖存储在Info.plist中的值,并丢失后缀字符.这有什么好办法吗?

  9. iOS – 开始iOS教程 – 变量之前的下划线?

    这是正确的还是我做错了什么?

  10. ios – 静态计算变量被多次实例化

    我有一个日期格式化程序,我试图在UITableViewCell子类中创建一个单例,所以我创建了一个这样的计算属性:问题是我不止一次看到print语句,这意味着它不止一次被创建.我已经找到了其他方法,但我很想知道这里发生了什么.有任何想法吗?解决方法您的代码段相当于只获取属性,基本上它与以下内容相同:如果你只想运行一次,你应该像定义一个惰性属性一样定义它:

随机推荐

  1. Angular2 innerHtml删除样式

    我正在使用innerHtml并在我的cms中设置html,响应似乎没问题,如果我这样打印:{{poi.content}}它给了我正确的内容:``但是当我使用[innerHtml]=“poi.content”时,它会给我这个html:当我使用[innerHtml]时,有谁知道为什么它会剥离我的样式Angular2清理动态添加的HTML,样式,……

  2. 为Angular根组件/模块指定@Input()参数

    我有3个根组件,由根AppModule引导.你如何为其中一个组件指定@input()参数?也不由AppModalComponent获取:它是未定义的.据我所知,你不能将@input()传递给bootstraped组件.但您可以使用其他方法来做到这一点–将值作为属性传递.index.html:app.component.ts:

  3. angular-ui-bootstrap – 如何为angular ui-bootstrap tabs指令指定href参数

    我正在使用角度ui-bootstrap库,但我不知道如何为每个选项卡指定自定义href.在角度ui-bootstrap文档中,指定了一个可选参数select(),但我不知道如何使用它来自定义每个选项卡的链接另一种重新定义问题的方法是如何使用带有角度ui-bootstrap选项卡的路由我希望现在还不算太晚,但我今天遇到了同样的问题.你可以通过以下方式实现:1)在控制器中定义选项卡href:2)声明一个函数来改变控制器中的散列:3)使用以下标记:我不确定这是否是最好的方法,我很乐意听取别人的意见.

  4. 离子框架 – 标签内部的ng-click不起作用

    >为什么标签标签内的按钮不起作用?>但是标签外的按钮(登陆)工作正常,为什么?>请帮我解决这个问题.我需要在点击时做出回复按钮workingdemo解决方案就是不要为物品使用标签.而只是使用divHTML

  5. Angular 2:将值传递给路由数据解析

    我正在尝试编写一个DataResolver服务,允许Angular2路由器在初始化组件之前预加载数据.解析器需要调用不同的API端点来获取适合于正在加载的路由的数据.我正在构建一个通用解析器,而不是为我的许多组件中的每个组件设置一个解析器.因此,我想在路由定义中传递指向正确端点的自定义输入.例如,考虑以下路线:app.routes.ts在第一个实例中,解析器需要调用/path/to/resourc

  6. angularjs – 解释ngModel管道,解析器,格式化程序,viewChangeListeners和$watchers的顺序

    换句话说:如果在模型更新之前触发了“ng-change”,我可以理解,但是我很难理解在更新模型之后以及在完成填充更改之前触发函数绑定属性.如果您读到这里:祝贺并感谢您的耐心等待!

  7. 角度5模板形式检测形式有效性状态的变化

    为了拥有一个可以监听其包含的表单的有效性状态的变化的组件并执行某些组件的方法,是reactiveforms的方法吗?

  8. Angular 2 CSV文件下载

    我在springboot应用程序中有我的后端,从那里我返回一个.csv文件WheniamhittingtheURLinbrowsercsvfileisgettingdownloaded.现在我试图从我的角度2应用程序中点击此URL,代码是这样的:零件:服务:我正在下载文件,但它像ActuallyitshouldbeBook.csv请指导我缺少的东西.有一种解决方法,但您需要创建一个页面上的元

  9. angularjs – Angular UI-Grid:过滤后如何获取总项数

    提前致谢:)你应该避免使用jQuery并与API进行交互.首先需要在网格创建事件中保存对API的引用.您应该已经知道总行数.您可以使用以下命令获取可见/已过滤行数:要么您可以使用以下命令获取所选行的数量:

  10. angularjs – 迁移gulp进程以包含typescript

    或者我应该使用tsc作为我的主要构建工具,让它解决依赖关系,创建映射文件并制作捆绑包?

返回
顶部