js:语言精髓笔记1--标识符与基本类型
标识符:
- 命名:
- 语法以及类型----语法关键字 //逻辑
- 值(的存储位置)----变量和常量 //值
- 绑定://位置
- 语法关键字对位置的绑定----作用域限定
- 变量对位置的绑定---变量生存周期的限定
声明:约定变量的生存周期和作用域;
标识符语义关系:
- 与值相关:
- 类型
- 变量:
- 直接量
- 对象
- 与逻辑相关:
- 控制流程语句:
- 标签声明
- 一般流程控制语句 //break,continue,return
- 异常
- 控制流程语句:
- 与值和逻辑都相关:
- 表达式:
- 值运算
- 对象存取
- 逻辑语句:
- 顺序
- 分支
- 循环
- 表达式:
- 其他:
- 注释
JS引擎运行及响应错误:
- 1.语法分析(语法分析错误); //变量声明在语法分析阶段就处理,所以在执行的时候会有变量名提前的效果;
- 2执行(执行异常)
*js中函数多重含义包括:函数,方法,构造器,类以及函数对象等。
*由于不具备对象系统的全部特性,js通常称为基于对象而非面向对象的语言。
运算:(注意特殊值NAN)
- 一般表达式运算的结果总是直接量;
- 函数/方法调用的结果可以返回值或引用;
- 两个相同引用如果等值,那一定全等;
字符串转义序列:(\)
- 将无意义的字符串转化为有意义;
- 将有意义的符号转化为无意义;
注意:
字符:空字符串也可以用作对象成员名;
数值:当包括点字符“.”,字符e,E时,该直接量总会被标识为浮点数;(注意某些引擎会优化一直直接量的内部存储形式);
函数:在表达式中具名函数只识别为匿名函数而忽略函数名; -----(function foo(){})
js:语言精髓笔记1--标识符与基本类型的更多相关文章
- js:语言精髓笔记12--动态语言特性(2)
对于括号内: 通过赋值时发生的重写: (Object1 = function() {}).prototype.value = 100; var obj1 = new Object1; console. ...
- js:语言精髓笔记11--动态语言特性(1)
语言:程序最终被表达为数据(结构)和逻辑(算法),命令式和说明式/函数式语言分别从这两方面分类: 动态:在语言陈述时无法确定,必须在计算机执行时才能确定语言关系:JS是完全动态语言,导致其不确定性一般 ...
- js:语言精髓笔记10--闭包
闭包: //JS函数式风格中,在内部保存数据和对外无副作用这两个特性主要就是通过闭包实现的: 函数与闭包: 一个函数是一段静态代码,它是一个代码书写时已经编译期,静态概念:闭包是函数在代码运行过程中 ...
- js:语言精髓笔记9--函数式语言特征
形式化运算系统的研究: 图灵:提出图灵机形式系统,通过0,1运算系统来解决复杂问题: 冯诺依曼:提出了冯诺依曼体系:即通过修改内存反映运算结果: 阿隆左.丘奇:提出新的运算范型Lambda演算,计算机 ...
- js:语言精髓笔记8--对象系统
封装: 一把对象系统,封装是由语法解析来实现的,即语法作用域:但js是动态语言,因此只能依赖变量作用域: js的变量作用域只有表达式,函数,全局三种:所以js只能实现public和private两种封 ...
- js:语言精髓笔记7----原型继承
面向对象有三个基本特性:封装,继承,多态:如果都满足的话称为面向对象语言:而部分满足则称为基于对象语言: 数据类型实现模型描述: JavaScript对象模型: 构造过程:函数->构造器 构造器 ...
- js:语言精髓笔记5----语言分类
计算模型:源于对计算过程的不同认识: 1.基于不同计算模型一般分为://教科书的一般分类 命令式语言: 函数式语言: 逻辑式语言: 面向对象程序设计语言: 2.基于程序本质分类: //编程的经典法则 ...
- js:语言精髓笔记13--语言技巧
消除代码全局变量名占用: //本质是使用匿名函数: void function(x, y, z) { console.log(x + y + z); }(1,2,3); //要使函数内的变量不被释放, ...
- js:语言精髓笔记6----作用域
js基础语法:由语句.表达式和变量构成: 语句是主要表达方式:单语句->复合语句(代码块)->程序片段(函数):js中没有单元和程序的概念: 作用域: 语法作用域与变量作用域的区别:前 ...
随机推荐
- 推荐两款Xcode插件:KSImageNamed & ColorSense
之前没怎么接触过Xcode插件,最近发现有人给Xcode做了一些方便编程的插件.今天就推荐两个我个人认为比较好的. 1.KSImageNamed 网站地址 KSImageNamed是一款方便填写图片文 ...
- FZU 1649 Prime number or not米勒拉宾大素数判定方法。
C - Prime number or not Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & % ...
- lz4,pigz,gzip 3者比较
一.压缩(1.1)使用gzip进行打包:# time tar -zcf tar1.tar binlog*real 0m48.497suser 0m38.371ssys 0m2.571s (1.2)使用 ...
- 【SpringMVC】SpringMVC系列3之@PathVariable映射URL占位符参数
3.@PathVariable映射URL占位符参数 3.1.概述 带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义. ...
- Flatten Binary Tree to Linked List
Flatten a binary tree to a fake "linked list" in pre-order traversal. Here we use the righ ...
- 【转】仿百度输入框智能提示的js代码
转自:http://www.jb51.net/article/40783.htm 对于我这个JS菜鸟,能找到这样的实属不容易啊!!! 刚开始老大让做这个功能,真是一点头绪都没有,万分感谢!!! 最近客 ...
- swift init继承问题
当在子类的 designated init方法中不手动调用 父类的 designated init方法时,如果父类有不接受任何参数的init,那么系统会自动调用它,编译器不会报错.但是如果父类中没有不 ...
- mysql_4(解决中文乱码问题)
mysql> create database if not exists xdb default character set utf8;Query OK, 1 row affected (0.0 ...
- ip
D组播地址 主机号 用于识别该网络中的主机. IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同. A.B.C ...
- hadoop配置文件加载顺序(转)
原文 http://www.cnblogs.com/wolfblogs/p/4147485.html 用了一段时间的hadoop,现在回来看看源码发现别有一番味道,温故而知新,还真是这样的 在使用h ...