初识JavaScript(一)
初识JavaScript(一)
最近由于工作的需要的原因,我从一个写后台的现在让我转到写前端,再加上我的js部分特别的差,所以我现在开始学习js部分的知识。
我的第一篇博文就这样开始写了。俗话说,千里之行,始于足下。九层高台,始于垒土。我要努力跟上博客园的各位大神的脚步。
1.初识JavaScript的词法结构
在编程语言中词法机构是一套基础性规则,用来描述如何使用这门语言编写程序。在本小节中,咱们要认识到JavaScript的字符集、怎样区分大小写、空格、换行符和格式控制符、Unicode转义序列、标准化、注释等等词性结构。
1.1 字符集
JavaScript的程序使用Unicode字符集编写的,那什么是Unicode呢?Unicode是ASCII和Latin-1的超集,它支持地球上几乎所有在用的语言。
1.2 区分大小写
JavaScript是区分大小写的语言。也就是说,关键字、变量、函数名、和所有标识符(identifier)都必须采取一致的大小写的形式。
举个栗子:关键字"while"必须写成"while"而不能写成"While"或者"WHILE"。同样"online"、"Online"、"OnLine"、"ONLINE"是4个不同的变量名
注意:1.HTML并不区分大小写;
2.XHTML区分大小写
举个栗子:在HTML标签中,这些标签的属性名可以使用大写也可以使用小写,但是由于HTML的标签和属性名与JavaScript中的标签和属性名同名,这个时候JavaScript中则必须小写。比如在HTML中设置时间处理程序onclick属性可以写成onClick,但是在JavaScript(XHTML文档)代码中,必须使用小写的onclick。
1.3 空格、换行符和格式控制符
JavaScript会忽略程序中标识之间的空格。多数情况下,JavaScript同样会忽略换行符。由于可以在代码中随意使用空格和换行,因此采用整齐、一致的缩进来形成统一的编码风格,从而提高代码的可读性和整齐性。
| 中文名称 | 符号 |
| 空格符 | \u0020 |
| 水平制表符 | \u0009 |
| 垂直制表符 | \u000B |
| 换页符 | \u000C |
| 字节序标记 | \uFEFF |
| 换行符 | \u000A |
| 回车符 | \u000D |
| 行分隔符 | \u2028 |
| 段分隔符 | \u2029 |
| 不中断空白符 | \u00A0 |
| 从右至左书写标记 | \u200F |
| 从左至右书写标记 | \u200E |
| 零宽连接符 | \u200D |
| 零宽非连接符 | \uFEFF |
| ... | ... |
1.4 Unicode转义序列
使用6个ASCII字符来代替任意16位Unicode内码,这种序列就叫做Unicode转义序列。
举个栗子: "café" === "caf\u00e9" //结果是:true
1.5 标准化
Unicode标准为所有字符定义了一个首选的编码格式,并给出了一个标准化的处理方式将文本转换为一种合适比较的标准格式,JavaScript会认为它正在解析的程序化代码已经是这种标准格式,不会再对其标识符、字符串、或正则表达式做标准化处理。
1.6 注释
//:单行注释
/**/:多汗注释
1.7 直接量
所谓的直接量就是程序中直接使用的数据值。
举个栗子:
| 直接量 | 注释 |
| 12 | 数字 |
| 1.2 | 小数 |
| "hello world" | 字符串文本 |
| 'Hi' | 另一个字符串 |
| true | 布尔值 |
| false | 另一个布尔值 |
| /javascript/gi | 正则表达式直接量(用作模式匹配) |
| null | 空 |
| {x:1,y:2} | 对象 |
| [1,2,3,4] | 数组 |
1.8 标识符
标识符就是一个名字。在JavaScript中,用来对变量和函数命名,或者用做JavaScript代码中某些循环语句中的跳转位置的标记。
标识符命名规则:
1.必须以字符、下划线(_)、美元($)为首字母,后续的字符可以是字母、数字、下划线或美元符;
2.数字是不被允许作为首字符出现,以便JavaScript可以轻易的分开标识符和数字;
3.出于可移植性和易于书写性的考虑,通常我们只使用ASCII字母和数字来书写标识符;
4.JavaScript允许标识符中出现Unicode字符全集中的字母和数字。
合法的标识符:i、my_variable_name、v13、_dummy、$str等等
1.9 关键字(保留字)
JavaScript主要的关键字:break、do、instanceof、typeof、case、else、new、var、catch、finally、return、void、continue、for、switch、while、debugger*、function、this、with、default、if、throw、delete、in、try
2.0 可选的分号
JavaScript使用分号(;)将语句分开。这对增强代码的可读性和整洁性是非常重要的;缺少分隔符,一条语句结束就成了下一条语句的开始,反之亦然。
注意:1.JavaScript并不是在所有换行处都填补分号;只有在缺少了分号就无法正确解析代码的时候,JavaScript才会补填分号;
2.在return、continue和break和随后的表达式之间不能有换行。如果添加换行,程序则只有在极特殊的情况下才会报错,而且调试起来非常麻烦。
3.在涉及"++"和"--"运算符的时候。这些运算符可以作为表达式的前缀,也可以当做表达式的后缀。如果将其用做后缀表达式,它和表达式应当在同一行。否则,行尾将填补分号,同时"++"或"--"将会作为下一行代码的前缀操作符并与之一起解析。
2.小结
我是通过此次学习,才知道在js在词法有那么多规则,而且每种规则都是我在进行编写JavaScript程序的要求。
这是我第一次发这样的博文,有什么不对的地方请及时在下面留言,并帮助我进行更正。谢谢了!!!
初识JavaScript(一)的更多相关文章
- 笔记一、初识 Javascript
一.初识 Javascript javascript是一种专为与网页交互儿设计的脚本语言.由三部分组成:ECMAScript (ECMA-262定义) : 提供核心语言功能文档对象模型(DOM): ...
- Day15 HTML补充、初识JavaScript
一.上节回顾 上节回顾: HTML 头部信息:编码.title.style.link(导入css文件) 身体: 内联 块级 --->inline-block(既有内联效果又有块级效果) a标签: ...
- 《前端之路》之 初识 JavaScript
01 初识 JavaScript 作为在码农圈混迹了 四五年的老码畜来说,学习一门新的语言,就仿佛是老司机开新车一样 轻车熟路. 为什么会这么快呢? 因为各种套路啊- 任何一种计算机语言的最开始都是和 ...
- 01初识 JavaScript
1.初识 JavaScript 1.1 JavaScript 是什么 l JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思) l 脚本语言 ...
- 初识JavaScript(三)
初识JavaScript(三) 我从上一讲<初识JavaScript(二)>了解到了类型.值.变量的定义以及特点,本节我将学习到JavaScript中的算术运算.二进制浮点数和四舍五入的错 ...
- 初识JavaScript(二)
初识JavaScript(二) 我从上一篇<初识JavaScript(一)>知道和认识JavaScript的词法结构,也开始慢慢接触到了JavaScript的使用方法,是必须按照JavaS ...
- 初识JavaScript闭包
一个问题引发的思考 在我学习javascript的事件时,有一个小任务是使用JS来实现 li 列表项在鼠标悬浮时会有背景阴影的动态效果,很自然想到用for 来为每个列表项添加onmouseover 和 ...
- 初识JavaScript
JavaScript ECMA-262: 变量,函数,对象,数据类型....唯独没有输入和输出. Javascript:包含 ECMA-262,核心 BOM 浏览器对象模型, DOM 文档对象模型 什 ...
- 初识JavaScript 变量, 操作符, 数组
这里讲的不会太多, 因为所有的语言都是一样的, 一些基本的东西, 所以就随便写写. 变量 变量就是可变的量, 编程角度理解就是用于存储某种/某些数值的存储器. 我们可以把变量具象理解为一个盒子, 而我 ...
随机推荐
- Ubuntu配置完全教程
前言 最近将旧电脑换成了Ubuntu系统,在网上找了许多优化和配置教程,今天整理一份完整的教程给大家分享 系统清理 卸载LibreOffice libreoffice事ubuntu自带的开源offic ...
- (翻译)使用Api分析器与Windows兼容包来编写智能的跨平台.NET Core应用
本文翻译自Scott Hanselman博客: https://www.hanselman.com/blog/WritingSmarterCrossplatformNETCoreAppsWithThe ...
- 基于Node的高性能MVC框架
赶上公司去Windows化,有一大波.net站点需要转成Node.js,于是自己就顺便琢磨一个通用的Node版MVC框架. 经过几天的努力,beta版终于面世了!因为其高性能的特点,特地命名node- ...
- FastDFS迁移步骤
1.在新的机器上安装FastDFS 2.将新的storage接到老的tracker机器上,用来同步数据(/usr/local/fastdfs/bin/fdfs_storaged) 数据同步完成后,需要 ...
- 高效管理http连接
1.Http连接基础 Http协议承载了互联网上的主要流量,然而说到传输,还要回归到最基本的网络分层模型TCP/IP.TCP/IP是全球计算机及网络设备都在使用的一种常用的分组交互网络分层协议集.客户 ...
- ssm整合(基于xml配置方式)
本文是基于xml配置的方式来整合SpringMVC.Spring和Mybatis(基于注解的方式会再写一篇文章),步骤如下: (1)首先自然是依赖包的配置文件 pom.xml <project ...
- FiddlerCoreAPI开发(一)源码分析
1.前言 前一段时间想利用fiddlercore截取本地HTTPS的流量做一些分析,按照样例代码的注释学习了一下,没搞清楚怎么实现,后来又在网上查了些资料,对HTTPS的处理提及很少,都没有解决我的问 ...
- Winform开发中如何将数据库字段绑定到ComboBox控件
最近开始自己动手写一个财务分析软件,由于自己也是刚学.Net不久,所以自己写的的时候遇到了很多问题,希望通过博客把一些印象深刻的问题记录下来. Winform开发中如何将数据库字段绑定到ComboBo ...
- Object-C中release的机制问题
今天写了例如以下的一段代码: for (NSInteger i = 0; i < 10000000; i++) { UIView * v = [[UIView alloc] init]; [v ...
- UVA - 11082 Matrix Decompressing(最大流+行列模型)
题目大意:给出一个R行C列的矩阵,如今给出他的前1-R行和 && 前1-C列和,问这个矩阵原来是如何的,要求每一个元素大小在1-20之间 解题思路:将每一行连接到超级源点,容量为该行的 ...