这是我学习JavaScript的第二篇文章,之前做过几年的Java开发,发现JavaScript虽然也是面向对象的语言但是确实有很多不同之处。就本篇博客,主要学习总结一下最近学习到的JavaScript的知识,其中有些是网络上的,不过对于理解JavaScript,和在工作总是会很实用的,所以总结了下来:

那么就开始吧,首先是变量

在JavaScript中变量分为两种:一种是基本类型,基本类型值在内存中占用固定大小的空间,因此被保存在栈内存中。从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本。另一种类型则是引用类型,引用类型的值是对象,保存在堆内存中,对象的引用保存在栈中。包含引用类型值的变量实际上包含的并不是对象本身,而是一个指向对象的指针,从一个变量向另一个变量复制引用类型的值,复制的是指针,最终指向同一个对象。

那么在实际的使用中要确定一个值是那种基本类型的可以使用typeof操作符,而确定一个值是哪种引用类型则需要使用instanceof 操作符。

基本数据类型:undefined、Null、boolean、number和String

引用类型:Object、Array、Date、RegExp、Function、基本包装类型、单体内置对象(Gloabal、Math)。关于引用类型各个类型的详细使用,下次再详细描述。

JavaScript是面向对象的语言,同样支持继承,只是JavaScript支持实现继承,不支持接口继承。

JavaScript是一种非强类型的语言,不需要严格的如同Java、C等语言的声明类型然后复制,也一定要赋值声明类型的值。JavaScript有两种值类型,所以涉及到两个地方复制,一种就是复制变量值,另一个则是方法调用的时候存在参数传递赋值。基本类型是值复制,引用类型复制是对象的引用。

 

作用域

js中没有块作用域的概念。在没有var进行声明则会生成为全局变量污染全局环境。所以在实际的使用过程中,一定要记得var,

网友评论