灵动的JavaScript

JavaScript,弱类型动态脚本语言,浏览器嵌入式语言。简单,灵动。

一  JavaScript中的基本数据类型

JavaScript中简单数据类型只有undefinednullbooleannumberstring

复杂数据类型只有一种,即object。代码由function体现。

其他所有的代码都由以上基本内容组成。足够简单,但功能强大。

可以用typeof运算符来区别不同数据的类型。

 

 

二  JavaScript是函数式编程语言

这是最接近我们的函数式编程语言了。相比Lisp,Haskell。JavaScript显得如此亲切。函数是JavaScript的第一对象。函数可以制造对象,函数是JavaScript对象之父。

 

 

三  JavaScript是基于对象的编程语言

JavaScript中没有类的概念。JavaScript中,一切可以被当作对象来处理。function可以看作是对象。boolean,number,string必要时解释器会自动包装为对象。

对象本质上就是一系列属性的集合,而JavaScript对象的本质是字典。这与Python几乎一致。

字典是一种可变容器,JavaScript对象的属性可以动态添加,也可以动态减少。

 

 

四  JavaScript的面向对象

通过优秀的设计,使用强大的this、prototype语法,JavaScript已经几乎可以完全支持面向对象了,虽然其实现方式显得很不寻常。(至于是不是完全的面向对象。我总觉着JavaScript函数式才是其真正本质。面向对象还是为了迎合开发者的。但仁者见仁,智者见智。这并不重要。)

 

 

五   JavaScript运行环境

1.宿主环境

JavaScript必须在浏览器中运行。相对于JavaScript,Web浏览器是一种外壳程序。外壳程序向脚本语言提供宿主环境,宿主环境向脚本语言提供基本对象,脚本语言操作这些对象,从而获得一些实际的能力。

例:JavaScript本身没有IO接口,没有实际的能力。javascript运行在外壳程序中,实际能力要依靠当前宿主环境提供的基本对象完成。比如 alert("hello world"); 这就是借助window对象的alert()函数完成。

又例:Windows环境中,MS提供WSH作为宿主环境。该环境定义了wscript对象以表示全局对象。

2.执行期环境

由宿主环境通过脚本引擎创建,实际就是由JavaScript引擎创建的一个代码解析初始环境。初始化内容包括:

一套与宿主环境相联系的规则

JavaScript引擎内核(基本语法规范、逻辑、命令和算法)

一组内置对象和API

其他

不同JavaScript引擎定义的初始化环境是不同的,这样也就形成了浏览器兼容问题。

 

 

六  JavaScript执行顺序

1.按HTML文档流的顺序从上到下解析JavaScript代码。不会因为某部分的js是外部代码而延期解析。

 

2.预编译与执行顺序的关系

javascript解析器会优先解析变量声明。后处理相应的执行语句。

保证良好习惯:声明全局变量和函数应放在代码之前。

 

3.按块执行JavaScript

如果遇到<script>标签,JavaScript解释器会等到代码块加载完后,先对代码块进行预编译,然后执行。之后再解析下一个HTML代码块。

所以,如果在前一块中用到后一块中声明的函数或变量,则会提示错误。

不同块中的变量和函数属于同一个全局作用域,即可以共享。

 

4.事件机制改变JavaScript执行瞬息

为避免网速随JavaScript执行的影响,一般在页面初始化完毕后才允许执行JavaScript代码。

使用onload事件,该事件在页面加载完毕后执行。

 

 

参考书籍:

<悟透JavaScript>

<JavaScript征途>

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值