1.JavaScript的灵活性
支持多种不同的编程风格,既可以采用函数式编程风格,也可以采用更复杂一点的面向对象编程风格。
2.弱类型语言
JavaScript中,定义变量时不必声明其类型。JavaScript中有3种原始类型:布尔型、数值型和字符串类型(不区分整数和浮点数是JavaScript与大多数主流语言的一个不同之处)。此外还有对象类型和包含可执行代码有函数类型,前者是一种复合数据类型(数组是一种特殊的对象,它包含着一批值的有序集合)。最后还有空类型(null)和未定义类型(undefined)这两种数据类型。原始数据是按值传递,而其它数据类型则按引用传送。
JavaScript中的变量可以根据所赋的值改变类型。原始数据之间也可以进行类型转变,如:toString,parseInt,parseInt。双重非操作可以把字符串或数值转变为布尔值;如:VAR BOOL = !!num.
弱类型的变量带来了极大的灵活性。因为JavaScript会根据需要进行类型转换。
3.函数是一等对象
4.对象的易变性
对象的易变性使得可以为函数添加属性,也可以对先前定义的类和实例化的对象进行修改
5.继承
JavaScript使用的是基于对象的(原型prototype)继承,它可以用来模仿基于类(类式classical)继承。
6.JavaScript中的设计模式
优点:可维护性、沟通、性能
缺点:复杂性、性能