JavaScript语言核心之词法结构】的更多相关文章

编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序.作为语法的基础,它规定了诸如变量名是什么样的.怎么写注释,以及程序语句之间如何分割的等规则. 1.1字符集 JavaScript程序是用Unicode字符集编写的.至于Unicode字符集,目前虽然查过一些资料,但是至今对UTF-8.UTF-16还是晕菜,也没搞懂一个汉字到底占几个字节的问题,所以这里就不做介绍了(就当埋坑了,以后搞懂了再做介绍吧).至于计算js中一个字符串所在字节数,曾查到如下实现代码: 1 /** 2 *…
本节是javascript语言的一个快速预览,也是本书的第一部分快速预览. 读此书之前,感谢淘宝技术团队对此javascript核心的翻译,感谢弗拉纳根写出此书.感谢你们无私的分享,仅以此笔记献给你们的辛勤付出. 一:javascript语言核心 本章之后,我们将主要关注javascript的基础知识.第二章我们讲解javascript的注释,分号和unicode字符集:第三章会更有意思,主要讲解javascript的变量和赋值 这里有一些实例代码说明前两章的重点内容. <script type…
第四章 表达式和运算符 P66 运算符优先级,从上到下: p68 属性访问表达式和调用表达式的优先级比运算符优先级都要高,eg: typeof my.functions[x](y) //typeof在两次属性访问和函数调用后执行 赋值运算优先级极低,通常最后执行. P69 R:从右至左结合性 x = ~-y; //x = ~(-y) w = x = y = z; //w = (x = (y = z)) q = a?b:c?d:e?f:g; //q = a?b:(c?d:(e?f:g)) P69…
编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序.作为语法的基础,它规定了诸如变量名是什么样的.怎么写注释,以及程序语言之间如何分隔等规则. 1. 字符集 JavaScript程序是使用Unicode(计算机科学领域里的一项业界标准)符集编写的.Unicode是ASCII和Latin-1的超集,并支持地球上几乎所有在用的语言.有关Unicode与JavaScript详解,可以看看大神的文章. 1.1. 区分大小写 JavaScript是区分大小写的语言.也就是说,关键字.变…
第二章 词法结构 P25 JavaScript是区分大小写的语言:但HTML不区分大小写(XHTML区分大小写,但浏览器具有强大的纠错能力.) 第三章 类型.变量和值 P32 var(variable)变量 P32 对象"命名值"的无序集合:数组是特殊对象--带编号的值的有序集合. P37 NaN和任何值都不相等,包括它本身.应当使用x!=x来判断x是否为NaN,当且仅当x为NaN时,表达式才为true. P37 -0 === +0 //true:1/-0 === 1/+0 //fal…
程式 AC#程序由一个或多个源文件组成,正式称为编译单元(编译单元).源文件是Unicode字符的有序序列.源文件通常与文件系统中的文件一一对应,但不需要此对应关系.为了获得最大的可移植性,建议使用UTF-8编码对文件系统中的文件进行编码. 从概念上讲,程序是使用三个步骤编译的: 转换,将文件从特定字符库和编码方案转换为Unicode字符序列. 词法分析,将Unicode输入字符流转换为标记流. 句法分析,将令牌流转换为可执行代码. 文法 本规范使用两个语法介绍了C#编程语言的语法.的词法(词法…
词汇结构 Swift 的词法结构描述了什么样的字符序列形成了语言的有效标记.这些有效令牌构成语言的最低级构建块,用于描述后续章节中的其余语言.令牌由标识符,关键字,标点符号,文字或运算符组成. 在大多数情况下,通过在下面指定的语法约束内考虑输入文本中可能最长的子字符串,从Swift源文件的字符生成标记.此行为称为最长匹配或最大蒙克. 空白和评论 空白有两种用途:在源文件中分隔标记,并帮助确定运算符是前缀还是后缀(请参阅运算符),否则将被忽略.以下字符被视为空格:空格(U + 0020),换行符(…
使用Firebug和chrome-devToolBar调试页面样式或脚本是前端开发每天必做之事.这个开发神器到底能给我们带来哪些更神奇的帮助呢?这几天看的一些资料中给了我启发,能不通过Firebug和chrome-devToolBar发现JS的全局对象的全部属性呢?能不能发现document对象中含有哪些不常用而又需要深刻理解的属性呢? 我们在此开8! 原创博文,转载请标明出处:http://www.cnblogs.com/dereksunok/p/4884460.html. 一.浅析for-i…
1.javascript的数据类型分为两类:原始类型和对象类型. 原始类型包括字符串.数字.布尔值.null.undefined. 对象是属性的集合,每个对象都由“名/值”对构成.数组和函数是特殊的对象. javascript核心定义了三种有用的类:日期类.正则类.错误类. 2.整型直接量: 16进制直接量以“0x”或“0X”开头,如0xff. 8进制直接量以“0”开头,如0377.(注:某些javascript的实现不支持八进制,所以最好不使用) 3.javascript中的算术运算: Mat…
字符集 1.用16位的Unicode字符集编写的,可以表示地球上通用的每一种书面语言.国际化 2.每个字符都是用两个字节表示的 3.大小写敏感:关键字.变量.函数名.标识符:HTML并不区分大小写 HTML中的标记.属性名可以是任意大小写方式输入 JavaScript中通常为小写:事件只能小写 4.忽略程序中的记号间的空格.制表符.换行符:可使程序整齐.一致 5.可选分号,用于分隔语句. 建议使用分号 换行时,会自动插入分号.注意容易引起bug的地方,尤其在return.break.contin…
对象: 通过引用(而非值)来操作对象: var obj = {"x":1,"y":2}; var copyObj = obj; copyObj.x = 5; console.log(obj);//{x:5,y:2} 对象最常见的用法是创建.设置.查找.删除.检测.枚举它的属性: (一).创建对象 (1).对象直接量创建 var empty = {}; var point = {x:1, y:2}; var point2 = {x:point.x,y:point.y}…
1.var用来声明一个或多个变量.全局变量是全局对象的属性,它无法通过delete删除. 如果var语句中的变量没有指定初始化表达式,那么这个变量的初始值为undefined. 变量声明语句会被提前到脚本或函数的顶部,但是初始化的操作还是在原来的位置执行. 2.和var声明的变量一样,函数定义语句中的函数(var setVal = function(){...})被显式地“提前”到脚本或函数的顶部. 3.条件语句(分支): (1).if.else匹配规则:else总是和就近的if语句匹配 (2)…
1.函数作用域:在函数内声明的所有变量在函数体内始终是可见的.这意味着在变量声明之前甚至已经可用. *“声明提前”:javascript函数里声明的所有变量(但不涉及赋值)都被提前至函数的顶部. function test(o) { var i = 0; if(typeof(o) == "object") { var j = 0; for(var k=0; k<10; k++) { console.log(k);//0-9 } console.log(k);//10 } cons…
第六章 对象 P123 在ES3中,点运算符后的标识符不能是保留字.如果一个对象的属性名是保留字,name必须使用方括号的形式访问它们,如o["for"]和o["class"].ES5可以在点运算符后直接使用保留字. P123 JS对象都是关联数组:数组元素通过字符串索引而不是数字索引,也称散列.映射或字典. P141 JSON.stringify(o);//序列化 JSON.parse(o);//还原 同时使用用于深拷贝 第七章 数组 P146 非负整数索引被当做…
1.对象名/值得映射 var book={ top:"a", fat:true }   2.访问对象属性 book.top book["fat"] 3.通过赋值创建一个新属性 book.dou="v"; 4.数组 var p=[1,2,3]; p[3]=4;//通过赋值来添加新元素 p[3]=5;//通过赋值来改变已有的元素 5.函数是一种值,可以赋值给变量 var sp=function(x){ return x*x; };    6.按照惯例…
通过ECMAScript 3创建的属性都是可写的.可枚举的.可配置的. 在ECMAScript 5中,数据属性的4个特性分别是它的值.可写性.可枚举性.可配置性.存取器属性的特性是读取.写入.可枚举性.可配置性. Object.getOwnPropertyDescriptor("p",x);//查询p对象的x属性,返回例如{get:/*func*/,set:undefined,enumerable:true,configurable:true} Object.definedProper…
getter和setter属性: var p = { x:1.0, y:1.0, get r(){ return Math.sqrt(this.x*this.x + this.y * this.y); }, set r(newValue){ var oldValue = Math.sqrt(this.x*this.x + this.y * this.y); var ratio = newValue / oldValue; this.x *= ratio; this.y *= ratio; },…
第九章 类和模块 P235 组合VS子类:组合优于继承 P236 类的层次结构和抽象类 第十章 正则达式的模式匹配 定义 JS中正则表达式用RegExp对象表示.直接量定义为包含在一堆斜杠(/)之间的字符,如: var pattern = /s$/;//匹配所有以s结尾的字符创 //用构造函数RegExp()定义等价于: var pattern = new RegExp("s$"); 直接量字符 字符类 重复 {n,m} //匹配前一项至少n次,但不能超过m次 {n,} //匹配前一项…
本文作为个人学习笔记,一直也没有重视javascript的系统学习(javascript是最容易被人忽视的语言),我都是要用的时候百度一下查找下资料开始用,但没有系统的,学习,和整理过javascript,有时候直接用百度来的Javascript代码改改就开始用了(拿来主义),做了3年半技术,现在构建自己的技能树发现自己这一块是一个空缺,所以就准备好好复习下javascript,便有了这系列的笔记.计划主要从两个大方向开始复习,一是:javascript核心部分,二:客户端javascript.…
× 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫:而说它复杂,是因为要真正掌握它则需要数年时间.实际上,前端工程师很大程度上就是指javascript工程师.前端入门容易精通难,说的是前端,更指的是javascript.本文是javascript基础语法的第一篇——词法结构.词法结构是一套基础性规则,用来描述如何使用javascript来编写程序…
今天是第二章.所谓词法结构(lexical structure),就是写代码中最基本的东西,变量命名,注释,语句分隔等,这是抄书抄的... 1.字符集,必须是Unicode,反正Unicode是ASCII的超集,各种语言妥妥支持,克林贡语=.=?当我没说 2.JavaScript是区分大小写的. 这一点给我留下了深刻印象.去年五月份,第一次写JavaScript,document.getElementById()写成了document.getElementByID(),妈蛋整整一个上午硬是get…
前言: 对于程序员,学习是无止境的,知识淘换非常快,能够快速稳固掌握一门新技术,是一个程序员应该具备的素质.这里将分享本人一点点不成熟的心得. 了解一门语言,了解它的概念非常重要,但是一些优秀的设计思想需要细心和大量实践才能慢慢参悟,在这之前需要做的是能够运用它来开发,那么了解一些基础特性非常有必要,通常这些特性是需要经验积累,从各种坑中累计出来,但是还有一种看似很笨却很有效的学习方法.那就是将别人的经验记录下来,有事没事都拿出来看看,集合开发中的经验,这会非常有效. 调试工具 firebug…
今天是第二章.所谓词法结构(lexical structure),就是写代码中最基本的东西,变量命名,注释,语句分隔等,这是抄书抄的... 1.字符集,必须是Unicode,反正Unicode是ASCII的超集,各种语言妥妥支持,克林贡语=.=?当我没说 2.JavaScript是区分大小写的. 这一点给我留下了深刻印象.去年五月份,第一次写JavaScript,document.getElementById()写成了document.getElementByID(),妈蛋整整一个上午硬是get…
编程语言的词法结构是一套基础性的规则,用来描述你如何编写这门语言.作为语法的基础,它规定了变量名是怎么样的,如何写注释,以及语句之间是如何区分的.本节用很短的篇幅来介绍javascript的词法结构. 1.字符集 javascript程序是用Unicode字符集编写的,Unicode是ASCII和Latin-1的超集,并支持地区上几乎所有的语言.ECMAscript3要求javascript的实现必须支持Unicode2,1及后续版本,ECMAscript5则要求支持Unicode3及后续版本…
  语法结构规定了诸如变量名是什么样的.怎么写注释,以及程序语句之间如何分隔等规则.本章用很短的篇幅来介绍JavaScript的词法结构.   2.1.字符集   JavaScript程序是用Unicode字符集编写的.Unicode是ASCII和Latin-1的超集,并支持地球上几乎所有在用的语言.   2.1.1.区分大小写   JavaScript是区分大小写的语言.也就是说,关键字.变量.函数名和所有的标识符(identifier)都必须采取一致的大小写形式.但需要注意的是,HTML并不…
[词法结构]字符集.注释.直接量.标识符和保留字.可选的分号 [字符集] JavaScript程序是用Unicode字符集编写的. Unicode是ASCII和Latin-1的超集,支持地球上几乎所有在用的语言. ECMAScript 3 要求JavaScript的实现必须支持Unicode 2.1 及后续版本,ECMAScript 5 则要求支持Unicode 3及后续版本. 1. 区分大小写 JavaScript是区分大小写的语言.关键字.变量.函数名和所有的标识符都必须采取一致的大小写形式…
作为一名前端程序员,自然学习了一些框架,但是学的越多越发现自己基础的不足,于是想系统的学习一下js基础,然后把它记录下来. 如其他编程语言一样,词法结构是一门语言的基础,它规定了诸如如何给变量起名字.如何写注释.如何断句等. 字符集 JavaScript 所使用的是Unicode字符集编码.和HTML不同,JavaScript 是区分大小写的.也就是说变量.函数名.关键字和所有的标识符都必须使用一致的大小写形式.比如我们可以使用 var 来定义一个变量,而不能使用 VAR 或者 Var 来定义.…
词法结构 2.1字符集 JavaScript 是Unicode字符集编写,差点儿支持地球上全部的语言. 2.1.1区分大写和小写 javascript是区分大写和小写的语言. 2.1.2 空格.换行符和格式控制符 javascript会忽略标识之间的空格符.换行符.通过空格和换行能够大大地提高代码的可读性.当须要使用空格和换行符时,使用Unicode的转义来实现. 2.2凝视 单行凝视     //这里是单行凝视 多行凝视    /**多行凝视 */ 2.3直接量 在程序中能够直接使用的量,比方…
使用广泛,所有的浏览器(桌面.手机.屏蔽等等)都配有相应的JavaScript解析器. JavaScript解析器如何工作? 浏览器在读取HTML文件的时候,只有当遇到<script>标签的时候,才会唤醒所谓的“JavaScript解析器”开始工作. 1.“找一些东西”: var. function. 参数:(也被称之为预解析) 备注:如果遇到重名分为以下两种情况:遇到变量和函数重名了,只留下函数:遇到函数重名了,根据代码的上下文顺序,留下最后一个. 2.逐行解读代码. 备注:表达式可以修改预…
第二章 词法结构 一.HTML并不区分大小写(尽管XHTML区分大小写),而javascript区分大小写:在HTML中,这些标签和属性名可以使用大写也可以使用小写,而在javascript中必须小写. 二.javascript使用分号(;)作为语句结束符,如果单行也可以解析成正确语句,可以省略分号.有些程序员习惯在语句前加上一个分号,这是为了避免前面语句因丢失分号造成错误. 第三章 类型.值和变量 一.javascript数据类型分为原始类型和对象类型.原始类型包括数字.字符串和布尔值,其中n…