Js 整理备忘(00)—— 基础

转自:http://www.cnblogs.com/gppblog/archive/2010/01/10/1643717.html

 


 

 

1、字符集  

Unicode字符,Javascript(以下均简称Js)程序中每个字符 都是两个字节表示的,16位的Unicode编码可以表示地球上通用的每一种书面语言。

2、数据类型

数字(number)

所有数字都由浮点型表示,采用IEEE 754标准定义的64位浮点格式。注意,某些整数运算(如位运算)是对32位整数执行的。

一些特殊数值常量:

NaN(Number.NaN), 特殊非数字值;

Infinity(Number.POSITIVE_INFINITY),正无穷大;

-Infinity(Number.NEGATIVE_INFINITY), 负无穷大;

Number.MAX_VALUE,可表示的最大数字;

Number.MIN_VALUE,可表示的最小 数字(最接近零)。

——函数 isFinite(n) 检测一个数字是否是NaN、正无穷大或负无穷大。

字符串(string)

没有char这样的类型,表示单个字符,必须使用长度为1的 字符串。

布尔值(boolean)

有时候可以把两个可 能的布尔值看作on(true)和off(false),或者yes和no

函数 (function)

是“具有可执行代码的对象”

对象(object)

表示“已命名的数据的无序集合”

这些已命名的数据通常被作为对象的属性来引用(有时,它们被称为 ),属性可以是任何类型的数据(数组、函数、对象…)。

此外,还有一些专用对象,如Date类、 RegExp类、Error类等。

数组(array)

表 示“有编号的数据的有序集合”

数组可以存放任何一种Js数据类型,包括对其他数组、对象、函数的引用。

Js中并不支 持多维数组,不过其数组元素还可以是数组。

Js是一种非类型语言,因此数组元素不必具有相同类型。

空(null)、未定义(undefined)

null  表示“无值”,常被看作对象类型的一个特殊值,即“无对象”。

——布尔环境:false;数字 环境:0;字符串环境:“null”

undefined  使用一个未被声明的变量、或已经声明但未赋值的变量、或并不存在的对象属性时,返回该值。

—— 布尔环境:false;数字环境:NaN;字符串环境:“undefined”

注意:

(1) 运算符“==”将两者看作相等

(2)运算符“===”或者typeof()可区别两者

 

类型间的 转换——详参考权威指南P47

数字-->字符 串:N.toFixed(n),N.toExponential(n),N.toPrecision(n)

字符串-->数 字:parseInt/parseFloat(s,{p})

布尔型-->其他:数 值,true->1,false->0;字符串,true->“true”,false->“false”

其 他-->布尔型:数值,0/NaN->false,其他->true;字符串,空串->false,其他->true;其 他,null/undefined->false,任何非空的对象/数组/函数->true

 

3、 基本数据类型的包装对象

先看两句常见的字符串操作

var s="Hello Word";

var last_word=s.substring(s.lastIndexOf("")+1,s.length);

s是 对象吗?字符串不是基本类型吗?由typeof(s)可知s是string类型,即字符串类型。那么为什么字符串的操作能够采用对象的表示法呢?

——事实上,三种基本类型都有相应的对象类,即Number、String和Boolean类,这些类是基本类型的包装(wrapper),不 仅具有和基本类型一样的值,还定义了用来运算数据的属性和方法。

注意:当在对象的环境中使用字符串时,被创建的String对象是瞬时 存在的,使我们可以访问属性或方法,用完后就没有了,系统会将它丢弃。

以前面两行代码为例,测试:

<

script
type
="text/javascript">

var

s = "Hello Word"
;

document.write(typeof
(s));



var
last_word = s.substring(s.lastIndexOf(""
) + 1, s.length);

document.write("<br/>"
+ typeof
(s));

</
script
>


页面输出什么?答案是——

string

string(说明s只是在使用其包装对象的属性或方法时瞬时创建了一个String的对象而已,用完即被丢弃,而s本身没有变化)

但是,如果要显式地使用String对象,则必须创建一个非瞬态对象,如S=new String("Hello Word");

同样地,当我们在需要原始字符串值的地方用了String对象时,Js也会自动将String对象转换为一个字符串。

如msg=S+"!";

此处有关字符串值和String对象的内容同样适用于数字、布尔值和Number、Boolean对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值