JavaScript每天必学之基础知识(2)

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title></title> <script type="text/javascript"> alert(typeof null); </script> </head> <body> </body> </html>

null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。 

Undefined 数据类型: 

如下情况将返回 undefined 值:
对象属性不存在,
声明了变量但从未赋值。

null和undefined的区别

alert(typeof undefined); //output "undefined" alert(typeof null); //output "object" alert(null == undefined); //output "true"

ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。

alert(null === undefined); //output "false" alert(typeof null == typeof undefined); //output "false"

null与undefined的类型是不一样的,所以输出”false“。而===代表绝对等于,在这里null === undefined输出false 

另外,这里介绍一种比较重要的数据类型——引用数据类型 

引用数据类型 

javascript引用数据类型是保存在堆内存中的对象,JavaScript不允许直接访问堆内存空间中的位置和操作堆内存空间,只能通过操作对象在栈内存中的引用地址。所以引用类型的数据,在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存在堆内存中的对象。 

下面我们来演示这个引用数据类型赋值过程

JavaScript每天必学之基础知识

 

自然,给obj2添加name属性,实际上是给堆内存中的对象添加了name属性,obj2和obj1在栈内存中保存的只是堆内存对象的引用地址,虽然也是拷贝了一份,但指向的对象却是同一个。故而改变obj2引起了obj1的改变。 

基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。
 而引用类型值则是指那些保存在堆内存中的对象,即变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,该位置保存对象。 

简而言之,堆内存存放引用值,栈内存存放固定类型值。

JavaScript每天必学之基础知识

在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值。 

原始值存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。引用值存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。

<script type="text/javascript”> var box = new Object(); //创建一个引用类型 var box = "lee"; //基本类型值是字符串 box.age = 23; //基本类型值添加属性很怪异,因为只有对象才可以添加属性。 alert(box.age); //不是引用类型,无法输出; </script>

3.JScript 的运算符 

优先级:指运算符的运算顺序,通俗的说就是先计算哪一部分。
结合性:同一优先级运算符的计算顺序,通俗的说就是从哪个方向算起,是左到右还是右到左。 

数据类型转换和基本包装类型 

String() 转换为字符串类型
Number() 转换为数字类型
Boolean() 转换为布尔类型 

parseInt:将字符串转换为整数。从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseInt(“150 hi”)返回的值是:150,parseInt(“hi”)返回的值是:NaN。
 parseFloat:将字符串转换为浮点数。 从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzjxjs.html