简述JavaScript的语言特点

                                                                     简述JavaScript的语言特点
        最近在读《JavaScript编程全解》这本书,对于JS的编程风格和特色有了些自己的看法,今天和大家分享一下。JS的语言特色有以下五个方面:

  1、解释性语言;2、类似于C语言的语法结构;3、动态语言;4、基于原型的面向对象字面量的表现能力;5、函数式编程;

  • 解释型语言

      与之相对的就是编译型语言。解释型语言就是直接在运行环境中执行代码,js的运行环境是浏览器,它的解释器是嵌入在浏览器内核中的。解释型语言的不足在与运行速度通常会慢于编译型语言,因为编译型语言在程序执行之前,有一个单独的编译过程,将程序源代码“翻译”成目标代码(机器语言),以后执行这个程序的时候,就不用再进行翻译了。因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。但现在两类语言的界限已经越来越模糊。编译型语言在有了足够快的编译器和功能强大的运行环境后也能实现和解释型语言相匹敌的开发难易度。而解释型语言由于使用了JIT(Just In Time)后,在运行中使用这种编译技术,使得运行速度得以改善。一门语言设计的目的有他自己的考虑,是为了是开发过程变得轻松还是为了提高执行效率,设计理念是不同的。

  • 类似于C语言的语法结构

    JS的语法结构基本和C、Java等语言的语法结构类似。JS同样有if或while这类关键字,他们乍一看很像,因此有这些语言开发经验的人很容易就能熟悉javascript。不过需要注意的是,他们之间的相似性其实不像表面看起来的那么强。

  • 动态语言

    JS与C和Java所不同的一点在于,JS是一种动态语言。但从代码的角度看,动态语言的变量和函数是不指定返回值类型的。选择将JS做成动态性语言也是为了优先考虑开发难易度的。对于解释型语言以及动态语言的喜好见仁见智,但语言本身并没有高低强弱之分。

  • 关于原型对象

     每个javascript对象都有一个原型对象,这个对象在不同的解释器下的实现不同。由于原型对象本身也是对象,根据上边的定义,它也有自己的原型,而它自己的原型对象又可以有自己的原型,这样就组成了一条链,这个就是原型链,JavaScritp引擎在访问对象的属性时,如果在对象本身中没有找到,则会去原型链中查找,如果找到,直接返回值,如果整个链都遍历且没有找到属性,则返回undefined.原型链一般实现为一个链表,这样就可以按照一定的顺序来查找。

 

var base = { 
    name : "base", 
    getInfo : function(){ 
       return this.name; 
    } 
}    
var ext1 = { 
    id : 0, 
    __proto__ : base 
}     
var ext2 = { 
    id : 9, 
    __proto__ : base 
}     
print(ext1.id); 
print(ext1.getInfo()); 
print(ext2.id); 
print(ext2.getInfo());
 结果
0
base
9
base

 
    最后Obejct.prototype的”__proto__”值为null。Js所有的函数都有一个prototype属性,这个属性引用了一个对象,即原型对象,也简称原型。这个函数包括构造函数和普通函数,我们讲的更多是构造函数的原型,但是也不能否定普通函数也有原型。

  • 字面量的表现能力

    为了说明那些具有一定功能的方法,我们为他们起了不同的函数名,为了调用一些常量,我们把他们赋值给变量名。value代表这个值。literals代表如何表达这个值。5,既可以是五,也可以是five,还可以用二进制表示。这就是字面量。字面量表现突出的不止JS一个,但是他的字面量表现能力确实非常优秀。true、false和null,它们分别表示一个整数、两个布尔值和一个空对象。
JavaScript还支持对象,数组字面量,函数字面量,允许使用一种简洁而可读的记法来创建数组和对象。

  • 函数式编程

    简单来说,函数式编程就是使用函数作为变量。回调函数是从一个叫函数式编程的编程范式中衍生出来的概念。函数式编程中的一个主要技巧就是回调函数。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值