初识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 变量, 操作符, 数组
这里讲的不会太多, 因为所有的语言都是一样的, 一些基本的东西, 所以就随便写写. 变量 变量就是可变的量, 编程角度理解就是用于存储某种/某些数值的存储器. 我们可以把变量具象理解为一个盒子, 而我 ...
随机推荐
- apache mysql无法启动解决办法
最近在调试几个代码,需要不停的启动关闭服务器和mysql.在连续的几次开关后,无法启动了,每次启动后就直接关闭. 刚开始是怀疑是不是端口被占用了,查看端口后,并没有端口被占用的情况.查看mysql错误 ...
- 自动微分方法(auto diff)
学习机器学习的同学在学习过程中会经常遇到一个问题,那就是对目标函数进行求微分,线性回归这类简单的就不说.复杂的如神经网络类那些求导过程的酸爽.像我还是那种比较粗心的人往往有十导九错,所以说自动求导就十 ...
- FreeRTOS--堆内存管理
因为项目需要,最近开始学习FreeRTOS,一开始有些紧张,因为两个星期之前对于FreeRTOS的熟悉度几乎为零,经过对FreeRTOS官网的例子程序的摸索,和项目中问题的解决,遇到了很多熟悉的身影, ...
- eclipse中将本地项目上传到svn库
转载文章:http://blog.csdn.net/singit/article/details/48972197
- 360提供的php防注入代码
<?php //Code By Safe3 function customError($errno, $errstr, $errfile, $errline) { echo "< ...
- Elasticsearch的基友Logstash
Logstash 是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理. 一.原理 Input 可以从文件中.存储中.数据库中抽取数据,Input有两 ...
- JWT.NET的使用
JWT是什么 JWT全称是Json Web Token,是一种用于双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准( RFC 7519 ),定义了一种简洁的,自包含的 ...
- 在Github上面搭建一个自己域名的Hexo博客
前言 在一次看到别人的博客主页,觉得设计很漂亮.但是由于自己对于前台这块没什么办法,煞是羡慕.偶然中发现这种样式是在Github上面搭建的,使用的是Next主题.于是便想自己也搭建一个,于是便去就去查 ...
- TempFile模块
tempfile模块,用来对临时数据进行操作 tempfile 临时文件(夹)操作 tempfile.mkstemp([suffix="[, prefix='tmp'[, dir=None[ ...
- 【luogu1220】关路灯
https://www.luogu.org/problem/show?pid=1220 假如当前老张在a处跑去关掉b处的路灯,那么a与b之间的路灯都可以顺手关掉.因此每一时刻关掉的路灯必定是连续的. ...