资讯专栏INFORMATION COLUMN

词法 - Javascript核心 - Javascript语法基础

lakeside / 1108人阅读

摘要:原文源码的词法结构字符集程序是用字符集。支持地球上几乎所有在用的语言。是区分大小写的语言的。与在是不同的,在是相同的。会忽略程序中标识之前的空格。多数情况下也会忽略换行符。

  

原文: http://pij.robinqu.me/JavaScript_Core/JavaScript_Basics/Lexical.html

  

源码: https://github.com/RobinQu/Programing-In-Javascript/blob/master/chapters/JavaScript_Core/JavaScript_Basics/Lexical.md

JavaScript的词法结构 字符集

JavaScript程序是用Unicode字符集。支持地球上几乎所有在用的语言。

var π = 3.14;

JavaScript是区分大小写的语言的。需要注意的是,HTML并不区分大小。

online 与 Online 在JavaScript是不同的,在HTML是相同的。

JavaScript会忽略程序中标识之前的空格。多数情况下也会忽略换行符。这样我们可以通过空格和换行,保持整齐,一致的编码风格。需要注意的是,如果当前语句和随后的非空格字符不能当成一个整句,JavaScript不会忽略换行符而是在语句行结束处填补分号。例如:

var a
a
=
3
console.log(a)

JavaScript将其解析为:

var a; a = 3; console.log(a);

在有些计算机硬件和软件里,无法显示或输入Unicode字符全集。为了支持那些使用老旧技术的程序员,JavaScript定义了一种特殊序列,使用6个ASCII字符代表任意16位Unicode内码,一般为转义序列均以u为前缀,其后跟随4个十六进制数

é // u00E9
注释

JavaScript支持两种格式的注释:

//这里是单行注释
/*这里是一段注释*/
直接量

所谓直接量,就是程序中直接使用的数据值:

12 //数字
1.2 // 小数
"hello world" // 字符串
"Hi"// 字符串
true // 布尔值
false // 另一个布尔值
/javascript/gi //正则表达式直接量
标识符

标识符就是一个名字,在JavaScrpt中,标识符用来对变量和函数进行命名

JavaScript标识符必须以字母,下划线或者美元符开始

var _secret, $dom;

后续的字符可以使字母,数字,下划线或美元符

var _1234567, super_secret, _$;

通常使用ASCLL字符

var iVar;

保留字

常用的保留字

break delete case do catch else continue false debugger finally default for function return typeof if switch var in this void instanceof throw while new true with null try

ECMAScript 5 的保留字

class const enum export extends import super

在严格模式下的保留字

implements let private public yield interface package protected static

ECMAScript 3, 保留了java语言中所有的关键字

abstract double goto boolean enum implements byte export import char extends int class final interface const float long native static package super private synchronized protected throws public transient short volatile

预定义的全局变量

arguments encodeURI Infinity Array encodeURIComponent isFinite Boolean Error isNaN Date eval JSON decodeURI EvalError Math decodeURIComponent Function NaN Number Object parseFloat parseInt RangeError ReferenceError RegExp String SyntaxError TypeError undefined URIError
分号

当没有分号就无法解析代码时,把换行符当成一个分号

当换行符的下一个非空字符无法解释为语句的延续时,把换行符当成一个分号

如果一条语句以 (, [, /, +, or -开头, 可能会被解释为是之前语句的延续

两个例子

如果一个换行符后面没有任何字符,JavaScript会把它解释为分号

function() {
 return
 1;
}

++ 和 −− 操作符

必须与他们的表达式在同一行

否则, 换行符会被当成是分号, ++ 或者 -- 会被解析为前缀的操作符在之后的代码上。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78115.html

相关文章

  • 这一次,我们换种姿势学习 javascript

    摘要:操作符或调用函数时传入参数的操作都会导致关联作用域的赋值操作。此外可以使用和来设置对象及其属性的不可变性级别。忽视这一点会导致许多问题。使用调用函数时会把新对象的属性关联到其他对象。 前言 《你不知道的 javascript》是一个前端学习必读的系列,让不求甚解的JavaScript开发者迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途。本书介绍了该系列的两个主题:...

    zone 评论0 收藏0
  • 高级前端基础-JavaScript抽象语法树AST

    摘要:本文主要介绍解析生成的抽象语法树节点,的实现也是基于的。原文地址解析器是把源码转化为抽象语法树的解析器。参考文献前端进阶之抽象语法树抽象语法树 前言 Babel为当前最流行的代码JavaScript编译器了,其使用的JavaScript解析器为babel-parser,最初是从Acorn 项目fork出来的。Acorn 非常快,易于使用,并且针对非标准特性(以及那些未来的标准特性) 设...

    verano 评论0 收藏0
  • 理解JavaScript核心知识点:作用域

    摘要:也毫不例外,但在中作用域的特性与其他高级语言稍有不同,这是很多学习者久久难以理清的一个核心知识点。主要使用的是函数作用域。 关于作用域:About Scope 作用域是程序设计里的基础特性,是作用域使得程序运行时可以使用变量存储值、记录和改变程序的状态。JavaScript 也毫不例外,但在 JavaScript 中作用域的特性与其他高级语言稍有不同,这是很多学习者久久难以理清的一个核...

    HelKyle 评论0 收藏0
  • 十分钟快速了解《你不知道的 JavaScript》(上卷)

    摘要:最近刚刚看完了你不知道的上卷,对有了更进一步的了解。你不知道的上卷由两部分组成,第一部分是作用域和闭包,第二部分是和对象原型。附录词法这一章并没有说明机制,只是介绍了中的箭头函数引入的行为词法。第章混合对象类类理论类的机制类的继承混入。 最近刚刚看完了《你不知道的 JavaScript》上卷,对 JavaScript 有了更进一步的了解。 《你不知道的 JavaScript》上卷由两部...

    赵春朋 评论0 收藏0
  • 夯实基础-作用域与闭包

    摘要:作用域分类作用域共有两种主要的工作模型。换句话说,作用域链是基于调用栈的,而不是代码中的作用域嵌套。词法作用域词法作用域中,又可分为全局作用域,函数作用域和块级作用域。 一篇巩固基础的文章,也可能是一系列的文章,梳理知识的遗漏点,同时也探究很多理所当然的事情背后的原理。 为什么探究基础?因为你不去面试你就不知道基础有多重要,或者是说当你的工作经历没有亮点的时候,基础就是检验你好坏的一项...

    daydream 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<