JS是解释执行的,即读取一个语句就执行一个。以前的严格JS是以分号为语句的分隔符,但现在一些浏览器已经接受以换行符为分隔符(似乎是很多人喜欢用基于对象的编程了,而在JS中写对象的函数是需要加分号的,所以很多人都爱忘)。
JS本身只提供语法解析与少部分内部函数支持,其他的均由宿主支持。比如在网页JS中的window, document, navigator等对象,均是由浏览器提供基于其它语言的代码,这些代码通常被隐藏,但很大程度上决定了JS的运行效率。如果你有兴趣,打开Chrome,按F12,调处Console,然后输alert(注意没有()),你就会发现[native code]这个东西。
就是执行你的javascript代码的东东,就像你的java代码由JVM执行,javascript是由javascript解释器执行,浏览器中一般都会包含这个。
每个浏览器的并不一样,一般都包含在各浏览器的内核中。
浏览器内核一般包含两个引擎:页面排版引擎 和 JS引擎。
IE的 使用的自己的Trident 内核。
FireFox 是Gecko内核。
Opera 是Presto内核。
Safari 使用的Webkit 内核。
Chrome 是Google自己的 javascript V8引擎 而其页面排版采用的Webkit 内核。
JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
javascript是一种解释类型的语言,跟c++、c语言这些不一样(先编译后执行),它是在程序运行过程中每行都要进行解释。javascript不仅是一种基于对象的脚本语言,它既可以创建对象,也可以直接使用已有的对象。
javascript是事件驱动性的脚本语言,比如用户在访问网页时,鼠标在点击,移动等操作。javascript是可以直接对这些时间做出相应,并不需要通过web服务器来对用户的行为做出相应。
javascript特点:
1、简单性
javascript是弱类型的变量类型,对于数据类型并没有严格要求,她的设计简单紧凑。
2、跨平台性
javascript是不需要依靠操作系统,只要浏览器支持,它编译后就可以直接带到任何支持浏览器脚本语言上就可以直接使用了,而javascript几乎已经获得所有浏览器的支持。
javascript是事件驱动性的脚本语言,比如用户在访问网页时,鼠标在点击,移动等操作。javascript是可以直接对这些时间做出相应,并不需要通过web服务器来对用户的行为做出相应。
JavaScript简称js,是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
JavaScript同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。
特点
1、JavaScript可以创建活跃的用户界面,当用户在页面间导航时向他们反馈。
2、使用JavaScript来确保用户以表单形式输入有效的信息,这可以节省业务时间和开支。
3、JavaScript还可以处理表单,设置cookie,即时构建HTML页面以及创建基于Web的应用程序。
4、使用JavaScript,根据用户的操作可以创建定制的HTML页面。
一、js中的数字0就是false,非0为true,!表示取反。所以:
!0--false取反--true;
!!0--false双重取反--false;
!1--true取反--false;
!!1--双重取反--true;
!-1--true取反--false;。
!!-1--true双重取反--true。
二、==和===:
==:先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则愿意为你进行一次类型转换, 转换成相同类型后再进行比较;===: 如果类型不同,直接就是false。
具体比较过程:
1、双等号==:
(1)如果两个值类型相同,再进行三个等号(===)的比较。
(2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:
如果一个是null,一个是undefined,那么相等。
如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较。
2、 三等号===:
(1)如果类型不同,就一定不相等。
(2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN,只能使用isNaN( ) 来判断)。
(3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
如果两个值都是true,或是false,那么相等。
如果两个值都引用同一个对象或是函数,那么相等,否则不相等。
如果两个值都是null,或是undefined,那么相等。
扩展资料:
在js做比较的时候,有这样的三条规则:
1、如果比较的两者中有bool,会把 bool 先转换为对应的 number,即 0 和 1。
2、如果比较的双方中有一方为number一方为string,会把string转换为数字。
3、把string直接转换为bool的时候,空字符串‘'转换为 false,除此外的一字符串转换为 true。
参考资料:
百度百科--比较运算符