JavaScript发展史,与JScript差别,引入方式,数据类型,命名规范,命名推荐,解决命名冲突-LMLPHPJavaScript发展史,与JScript差别,引入方式,数据类型,命名规范,命名推荐,解决命名冲突-LMLPHP
文件夹:
1、JavaScript发展史
2、JavaScript与JScript差别
3、JavaScript引入方式
4、JavaScript基本数据类型及布尔值
5、JavaScript命名规范
6、JavaScript命名推荐
7、JavaScript解决命名冲突


1、 JavaScript发展史
1.Netscape发明了JavaScript(1992年后)


1)出现JavaScript的原因(Netscape Navigator)



* 网络的不断普及与推广,有庞大的用户量

* 因为当时的差点儿全部的网速都在28.8Kbit/s。网页用户体验不好

* 表单验证的须要,当时的每次表单验证。都是须要提交server,即使仅仅有一条或者说当中一个字符不符合要求,所有的信息将都要重写。

而且响应速度也相当的慢



2)JavaScript的发展历程

 

* 在1995年公布了Netscape Navigator 2.0开发LiveScript脚本语言;由Netscape 与 Sun完毕 实现了LiveScript。

* 在正式公布Netscape Navigator 2.0前,Sun与网景公司达成协议,SUN公司借助了Java的地位与热度,将LiveScript改成了JavaScript。  从而迅速得到了推广。

* 后来微软公司公布了IE3.0并搭载了JScript(JavaScript的克隆版),此时。JavaScript1.1版本号也公布了;

* 1997年JavaScript1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA),从而使当时的主流公司以及网页编程爱好者。极力的推广JavaScript,使得JavaScript得到了前所未有的发展;ECMAScript+DOM+BOM===Javascript 

* 2009.12 公布ECMAScript5.0<- HTML5.0—>API接口; node.js(后台)

  2014 公布了ECMScript6.0



2、 JavaScript与JScript差别
1.最開始web上仅仅有静态的html
2.为了满足更好的交互需求,netscape开发了在Navigator中使用的LiveScript语言。后改名为JavaScript
3.Microsoft发行jscript用于internet explorer.
4.最初的jscript和javascript差异过大,web程序猿不得不痛苦的为两种浏览器编写两种脚本。
于是诞生了ECMAScript,是一种国际标准化的javascript版本号。如今的主流浏览器都支持这样的版本号。
5.我们敲代码的时候最好写<script language=javascript>而不是<script language=jscript>由于javascript
是一个通用的名称。全部浏览器都认识,而jscript仅仅有IE认识。
6.其它语言细节上的差别。不是一两下能说完的。只是我个人觉得编程时最好遵循ECMAscript标准。 这样能够保证兼容性。
7.顺便说一下,javascript原来叫Livescript,后来Sun的java风头正盛的时候netscape就把名字改成javascript。

3、JavaScript三种引入方式
JavaScript发展史,与JScript差别,引入方式,数据类型,命名规范,命名推荐,解决命名冲突-LMLPHP


4、JavaScript基本数据类型及其布尔值以及数据类型转换

JS的基本数据类型包含:BooleanStringNullNumberObjectUndefined

 undefined 布尔值 false

  null的布尔值为false
  undefined == null  结果为true

显式转换:通过手动进行类型转换。Javascript提供了下面转型函数:

转换为数值类型  :  Number(mix)、parseInt(string,radix)、parseFloat(string)

转换为字符串类型:  toString(radix)、String(mix)

转换为布尔类型  :  Boolean(mix)

隐式转换:在某些情况下,即使我们不提供显示转换,Javascript也会进行自己主动类型转换

至于具体的显示隐身转换可參见博客:http://t.cn/zlWtl49

① 数字→字符串: 200 + '' == "200"   [加一个空字符型]

② 字符串→数字: "200" * 1 == 200 或者 "200" -
0
 == 200  [乘以1或者减去0]

③ Number( ): 用于将不论什么数据类型转换为“数值”

Number(true)

1

Number(false)

0

Number(NaN)

NaN

Number(Undefined)

NaN

Number(Null)

0

 



 ④ parseInt( ): 用于将字符串转换成整数型

[注]遇到非数字,会自己主动停止,取当前字符串前面的数字,假设前面没有数字,直接字母开头,返回NaN

Eg: console.log(parseInt('g54'));    // 输出NaN

Eg:console.log(parseInt('0628'));   // 输出628  自己主动忽略掉0开头的字符串

 parseInt( ); 进行进制的转换

二进制    Eg:console.log(parseInt(110,2)); 
 // 输出6

八进制    Eg:console.log(parseInt(16,8));     // 输出14

十六进制  Eg:console.log(parseInt(15,16));    // 输出 F

[注] 当要转换的数值超过所要转换的进制数的时候,会出现输出NaN
 Eg:parseInt(8,8); // NaN

公式: parseInt(数值,要转换的N进制);

parseInt在不同浏览器存在兼容问题,parseInt(0x10);依照16进制进行转换

parseInt(010);IE6会依照八进制进行转换,谷歌火狐IE9+等浏览器会依照10进制进行转换

⑤ parseFloat( ):用于将字符串
转换为 "浮点型数据"(即小数),parseFloat() 方法与 parseInt() 方法的处理方式相似,从位置 0 開始查看每一个字符。直到找到第一个非有效的字符为止,然后把该字符之前的字符串转换成整数。

⑥ Boolean( ):当要转换的值是至少有一个字符的字符串、非 0 数字或对象时,Boolean() 函数将返回 true。假设该值是空字符串、数字 0、undefined 或 null。它将返回 false。

var b1 = Boolean("");            //false -  空字符串

var b2 = Boolean("hello");       //true -   非空字符串

var b1 = Boolean(50);            //true -   非零数字

var b1 = Boolean(null);          //false -  null

var b1 = Boolean(0);             //false -  零

var b1 = Boolean(new object());  //true -   对象


⑦ String():它可把不论什么值转换成字符串,要运行这样的强制类型转换,仅仅须要调用作为參数传递进来的值的 toString()方法。即把 12 转换成 "12",把 true 转换成 "true"。把 false 转换成 "false"。以此类推。

   强制转换成字符串和调用 toString() 方法的唯一不同之处在于,对 null 和 undefined 值强制类型转换能够生成字符串而不引发错误;toString()里面能够写须要转换成的几进制

   var s1 = String(null); // "null"
   var oNull = null;  
     var s2 = oNull.toString();  // 会引发错误 

5、JavaScript命名规范
1、区分大写和小写
2、首写符必须是字母,下划线(
_ )或者美元符($)
3、除首字母外的字符。能够由字母。数字。下划线,美元符号组成
4、不同意包括空格
5、不能以keyword或保留字命名

6、JavaScript命名推荐
1、尊徐小驼峰命名法(除了第一个单词首字母之外。组成标示符的每一个单词的首字符均大写)

2、变量/属性命名:名词开头

3、常量命名:字母所有大写,假设出现多个单词组合,用下划线连接

4、构造函数 函数名称:首字母大写,同一时候遵循小驼峰命名规范

5、对个类似的声明,能够使用一个var,不同变量之间用逗号分隔,每一个变量须要单独的一行。同一时候保证变量名称左对齐

JavaScript发展史,与JScript差别,引入方式,数据类型,命名规范,命名推荐,解决命名冲突-LMLPHP
7、JavaScript解决命名冲突
 1、协同命名法
 2、对象命名空间
 3、匿名函数



05-08 08:18