JavaScript学习总结
清音浊世录1. JavaScript简介
JavaScript(简称“JS”) 是⼀种具有函数优先的轻量级,解释型或即时编译型的编程语⾔。虽然它是作为开发Web页⾯的脚本语⾔⽽出名,但是它也被⽤到了很多⾮浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语⾔,并且⽀持⾯向对象、命令式、声明式、函数式编程范式。
2. 诞⽣背景
2.1 诞⽣
JavaScript最初由Netscape的Brendan Eich设计,最初将其脚本语⾔命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发⽽开始设计的,⽬的之⼀就是“看上去像Java”,因此语法上有类似之处,⼀些名称和命名规范也借⾃Java,但JavaScript的主要设计原则源⾃Self和Scheme。微软同时期也推出了JScript来迎战JavaScript的脚本语⾔。
2.2 标准确定
发展初期,JavaScript的标准并未确定,同期有Netscape的JavaScript,微软的JScript和CEnvi的ScriptE
ase三⾜⿍⽴。为了互⽤性,Ecma国际(前⾝为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript),两者都属于ECMAScript的实现,尽管JavaScript作为给⾮程序⼈员的脚本语⾔,⽽⾮作为给程序⼈员的脚本语⾔来推⼴和宣传,但是JavaScript具有⾮常丰富的特性。
1997年,在ECMA(欧洲计算机制造商协会)的协调下,由Netscape、Sun、微软、Borland组成的⼯作组确定统⼀标准:ECMA-262。完整的JavaScript实现包含三个部分:ECMAScript,⽂档对象模型,浏览器对象模型。
3. 主要功能
(1)嵌⼊动态⽂本于HTML页⾯。
(2)对浏览器事件做出响应。
(3)读写HTML元素。
(4)在数据被提交到服务器之前验证数据。
(5)检测访客的浏览器信息。控制cookies,包括创建和修改等。
(6)基于Node.js技术进⾏服务器端编程。
4. 语⾔特点
JavaScript脚本语⾔具有以下特点:
(1)脚本语⾔。JavaScript是⼀种解释型的脚本语⾔,C、C++等语⾔先编译后执⾏,⽽JavaScript是在程序的运⾏过程中逐⾏进⾏解
释。
(2)基于对象。JavaScript是⼀种基于对象的脚本语⾔,它不仅可以创建对象,也能使⽤现有的对象。
(3)简单。JavaScript语⾔中采⽤的是弱类型的变量类型,对使⽤的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语
⾔,其设计简单紧凑。
腾讯(4)动态性。JavaScript是⼀种采⽤事件驱动的脚本语⾔,它不需要经过Web服务器就可以对⽤户的输⼊做出响应。在访问⼀个⽹页
时,⿏标在⽹页中进⾏⿏标点击或上下移、窗⼝移动等操作JavaScript都可直接对这些事件给出相应的响应。快速红警2
(5)跨平台性。JavaScript脚本语⾔不依赖于操作系统,仅需要浏览器的⽀持。因此⼀个JavaScript脚本在编写后可以带到任意机器上
使⽤,前提是机器上的浏览器⽀ 持JavaScript脚本语⾔,JavaScript已被⼤多数的浏览器所⽀持。
5. 设计缺陷
(1)不适合开发⼤型程序。
Javascript没有名称空间(namespace),很难模块化;没有如何将代码分布在多个⽂件的规范;允许同名函数的重复定义,后⾯的定义可以覆盖前⾯的定义,很不利于模块化加载。
(2)⾮常⼩的标准库。
Javascript提供的标准函数库⾮常⼩,只能完成⼀些基本操作,很多功能都不具备。
(3)null和undefined。
null属于对象(object)的⼀种,意思是该对象为空;undefined则是⼀种数据类型,表⽰未定义。
(4)全局变量难以控制。
Javascript的全局变量,在所有模块中都是可见的;任何⼀个函数内部都可以⽣成全局变量,这⼤⼤加剧了程序的复杂性。
(5)⾃动插⼊⾏尾分号。
Javascript的所有语句,都必须以分号结尾。但是,如果你忘记加分号,解释器并不报错,⽽是为你⾃动加上分号。有时候,这会导致⼀些难以发现的错误。
(6)加号运算符。
+号作为运算符,有两个含义,可以表⽰数字与数字的和,也可以表⽰字符与字符的连接。
(7)NaN。如何行酒令
NaN是⼀种数字,表⽰超出了解释器的极限。它有⼀些很奇怪的特性:与其设计NaN,不如解释器直接报错,反⽽有利于简化程序。
NaN是⼀种数字,表⽰超出了解释器的极限。它有⼀些很奇怪的特性:与其设计NaN,不如解释器直接报错,反⽽有利于简化程序。
(8)数组和对象的区分。
由于Javascript的数组也属于对象(object),所以要区分⼀个对象到底是不是数组,相当⿇烦。
(9)== 和 =。
感恩教育活动总结==⽤来判断两个值是否相等。当两个值类型不同时,会发⽣⾃动转换,得到的结果⾮常不符合直觉。因此,推荐任何时候都使⽤"="(精确判断)⽐较符。
(10)基本类型的包装对象。
Javascript有三种基本数据类型:字符串、数字和布尔值。它们都有相应的建构函数,可以⽣成字符串对象、数字对象和布尔值对象。与基本数据类型对应的对象类型,作⽤很⼩,造成的混淆却很⼤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论