使用数据类型注意的地方
1):数字: 由于数字有什么8进制,10进制,16进制等。。。 八进制:var num = 011; //以"0"开头 十六进制:var num =0x1f; //以"0x"开头 所以对于js这个都能识别的语言来说,就必须得注意。
进行算术运算有个重要的对象:Math.
具体可以去网上下载手册,查询里面的方法。
2个有用的函数:isNaN()和isFinite()
isNaN() : 用于检查其参数是否是非数字值。// 提示:是非数字哦。(not a number)
isFinite(number) 函数用于检查其参数是否是无穷大。
如果number是有限的,则返回true. 如果 number 是 NaN(非数字)或者是无穷大,则返回false;
2):字符: ‘you’re right’; 这样写的话js会误以为 在you字母后就结束了,引起错误。 所以当遇到这种情况的时候,必须用到转义。 我们可以这么写: ‘you\’re right’; 另外:你可以 google.com搜索 转义序列表 。
字符串的简单操作例子:
从例子可以看出,基数都是从0开始的。
3):数字跟字符之间的转换:
数字转字符:
注:toString()方法默认是以10进制转换。
如果要使用8进制转换可以 这么写: number. toString(8);
字符转数字:
方法1中不能 用string+0 ; 这样会导致字符串拼接,而不是类型转换。
方法2 中的Number函数转换,比较严格。
比如:
如果我们使用方法3。
可以看出parseInt()会自动忽略非数字的部分。 parseInt()只取整数部分,忽略小数部分。 parseFloat()会把小数部分也取到。 和toString()一样,parseInt也有进制,默认是10进制。 如果想使用8进制,可以这么写:
当字符以0开头的时候,我们必须把 第二个参数 指明,不然js可能会以8进制去转换。
4):布尔类型: 布尔在数字环境中:true 转换为 1 ,false 转换为 0 。 在字符环境中:true 转换为 “true” ,false 转换为 “false” 。 布尔转换:
5):函数的定义:
方法1:普通定义
方法2:函数直接量定义
方法3:构造参数
6):对象:
如果有一个名为 cssrain 的对象 , 他有一个高度height的属性。 那么我们可以这么引用: cssrain.height; 还可以使用关联数组定义:cssrain[“height”];
创建对象:
方法1:
方法2:使用对象直接量
当然json也可以咯。
对象在字符的环境下,会调用toString()方法。数字环境下,会调用valueOf()方法。布尔环境下,非空对象为true;
7):数组:
常规数组:以非负整数做为下标。image[0] 关联数组:以字符做为下标。如:image[“width”] js不支持多维数组,但数组里面可以嵌套数组。
创建数组:
方法1:
方法2:
注意下:如果只传了一个参数;比如
那么它是表示:3个未定义元素 的 新数组。
方法3:使用数组直接量
8):null和undefined: null表示无值; undefined : 使用一个并未声明的变量,或者使用了已经声明的变量但未赋值或者使用了一个并不存在的属性。 undefined==null 如果要区分: 可以使用=== 或者typeof运算符。
不管何时,只是对象非空,在布尔环境中都为true. 如;
上面虽然内部值是false,但对象的值是true;
Object valueOf() toString()
其中Date类,是先执行toString()转换。
3,一般来说:基本数据类型通过传值来操作的。
(如果忘记了哪些是基本数据类型,可以往回看。)
对象数据类型通过传址来操作的。(比如 数组和函数) 例子:
//传址 x=[1,2]; y=x; // 赋给y的只是x的一个引用,而不是x本身。数组已经在语句中被赋值了,执行过这段代码后,仍旧只有一个数组对象,只不过我们有2个对他的引用了。 y[0]=2; alert(x[0] +" | " +x[1]); //输出 2 | 2 </script>
其中我们必须注意字符串:
js中字符串是通过传址来复制和传递的,而他们是通过传值来比较的。
对象和数组是用传值来传递的,只不过传递的这个值实际是一个引用,而不是对象本身。 总结: 类型 复制 传递 比较 数字 传值 传值 传值 布尔 传值 传值 传值 字符串 不可变 不可变 传值 对象 传址 传址 传址 不可变:在JS中,没有方法去改变字符串值的内容。 对字符串来说,传值还是传址,意义不大。

浙公网安备 33010602011771号