栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

javascript基础语法

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javascript基础语法

0x00:  起因

首先阐述下本人学javascript的初衷,本人目前从事安全行业,目前能挖掘些基础的XSS漏洞,但是想深入理解XSS,需有javascript基础,例如理解DOM型XSS等,于是就有了这么一出,下面就是记录自己的学习笔记。
javascript是一门简单的语言,也是一门复杂的语言。说它简单,是因为学会使用它只需片刻功夫;而说它复杂,是因为要真正掌握它则需要数年时间。实际上,前端工程师很大程度上就是指javascript工程师。前端入门容易精通难,说的是前端,更指的是javascript。本文是javascript基础语法的第一篇——词法结构。词法结构是一套基础性规则,用来描述如何使用javascript来编写程序

0x01:  与java关系

  关于javascript有这样一个说法,java和javascript的关系是雷锋和雷锋塔的关系。那到底有没有关系呢

  javascript最开始的名字是Livescript,后来选择javascript作为其正式名称的原因,大概是想让它听起来有系出名门的感觉。除了语法看起来和java类似之外,javascript和java是完全不同的两种编程语言

  程序设计语言分为解释型和编译型两大类。java或C++等语言需要一个编译器。编译器是一种程序,能够把用java等高级语言编写出来的源代码翻译为直接在计算机上执行的文件。解释型程序设计语言不需要编译器——它们仅需要解释器,浏览器中的javascript解释器将直接读入源代码并执行

  java在理论上几乎可以部署在任何环境,但javascript却倾向于只应用在web浏览器。而且,在javascript语言中,函数是一种独立的数据类型,采用基于原型对象(prototype)的继承链,javascript语法要比Java自由得多

  基本上,Javascript这个名字的原意是“很像Java的脚本语言”

定义
  javascript是一门动态的、弱类型的解释型编程语言,非常适合面向对象和函数式的编程风格。javascript的语法源自java,它的一等函数来自scheme,它的基于原型的继承来自self

  javascript用来增强页面动态效果,实现页面与用户之间的实时、动态交互

  javascript由三部分组成:ECMAscript、DOM和BOM

  [1]ECMAscript由ECMA-262定义,提供核心语言功能(ECMA是欧洲计算机制造商协会)

  [2]DOM(document Object Model)文档对象模型,提供访问和操作网页内容的方法和接口

  [3]BOM(Browser Object Model)浏览器对象模型,提供与浏览器交互的方法和接口


0x02:大小写敏感

  关于javascript这门语言,再怎么强调都不为过的特性是大小写敏感。javascript中的关键字、变量、函数名和所有的标识符都必须采取一致的大小写形式

`//'online'、'Online'、'OnLine'、'ONLINE'是四个不同的变量名`

 [注意]HTML并不区分大小写(尽管XHTML区分大小写)。许多客户端javascript对象和属性与它们表示的HTML标签和属性同名。在HTML中,这些标签和属性名可以使用大写也可以使用小写,而在javascript中则必须是小写。例如,在HTML中设置事件处理程序时,onclick属性可以写成onClick,但在javascript代码中,必须使用小写的onclick

0x03:保留字(ReservedWord)

  和其他任何编程语言一样,javascript保留了一些标识符为自己所用。这些保留字不能用做普通的标识符。由于好多参考书的误导,貌似保留字和关键字是分开的,其实并不是,关键字只是保留字的一部分。保留字包括关键字、未来保留字、空字面量和布尔值字面量

保留字

 ReservedWord ::         Keyword         FutureReservedWord         NullLiteral         BooleanLiteral`**关键字**    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**未来保留字**  下列词被用作建议扩展关键字,因此保留,以便未来可能采用这些扩展    class      enum       extends       super    const      export     import**ECMAscript3版本**  以上是ECMAscript5的保留字,但在ECMAscript3版本中的保留字并不一样,若希望代码能在基于ECMAscript3实现的解释器上运行的话,应该避免使用以下保留字作为标识符abstract boolean byte char class constdouble enum export extends final floatgoto implements import int interfacelong native package private protectedpublic short  static super synchronized throw transient volatile # 0x04:预定义变量和函数  javascript预定义了很多全局变量和函数,应该避免把它们的名字用做标识符名`arguments Array Boolean Date decodeURI decodeURIComponent encodeURIencodeURIComponent Error eval evalError Function Infinity isFinite isNaN JSON Math NaN Number Object parseFloat parseInt RangeErroReferenceError RegExp String SyntaxError TypeError undefined URIError`# 0x05:注释(Comment)  不是所有语句都需要javascript解释器去解释并执行。有时需要在脚本中写一些仅供自己参考或提醒自己的信息,并希望javascript解释器能直接忽略掉这些信息,这类信息就是注释  注释能有效帮助了解代码流程,在代码中它们扮演生活中便条的角色,可以帮助我们弄清楚脚本到底干了什么  [注意]注释一定要精确地描述代码,没有用的注释比没有注释还要糟糕  有多种方式可以在javascript脚本中插入注释,包括单行注释、多行注释和HTML风格的注释【1】单行注释以两个斜杠开头``//单行注释【2】多行注释又叫块级注释,以一个斜杠和一个星号结尾

/
这是一个多行注释
/

  [注意]块级注释可以跨行书写,但不能嵌套,否则会报错

//报错
/
注释1
/
注释1.1
/
/

[注意]块级注释中的那些字符也可能出现在正则表达式字面量里,所以块级注释对于被注释的代码块来说是不安全的.match(s);*/【3】HTML风格的注释仅仅适用于单行注释,其实javascript解释器对来结束注释``  但javascript不要求这么做,它会把-->视为注释内容的一部分  [注意]HTML允许上面这样的注释跨越多行,但这种注释的每行都必须在开头加上"



我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号