Javascript学习第一季 一(2)

作者:cssrain 来源:无忧脚本 时间:2008-06-24 17:51:00 

8 ,使用数据类型注意的地方:

1):数字:
由于数字有什么8进制,10进制,16进制等。。。
八进制:var num = 011; //以"0"开头
十六进制:var num =0x1f; //以"0x"开头
所以对于js这个都能识别的语言来说,就必须得注意。

alert(377);   // 377
alert(0377);    //255   =  3 * 64 + 7 * 8  + 7 * 1

进行算术运算有个重要的对象:Math.

具体可以去网上下载手册,查询里面的方法。

2个有用的函数:isNaN()和isFinite()

isNaN() : 用于检查其参数是否是非数字值。// 提示:是非数字哦。(not a number)

document.write(isNaN(0) )  //返回false
document.write(isNaN(5-2) ) //返回false
document.write(isNaN ("Hello") ) //返回true

isFinite(number) 函数用于检查其参数是否是无穷大。

如果number是有限的,则返回true. 如果 number 是 NaN(非数字)或者是无穷大,则返回false;

2):字符:
‘you’re right’;
这样写的话js会误以为 在you字母后就结束了,引起错误。
所以当遇到这种情况的时候,必须用到转义。
我们可以这么写:
‘you\’re right’;
另外:你可以 google.com搜索 转义序列表 。

字符串的简单操作例子:

var a = "cssrain";
var b = a.charAt(a.length-1); // 从字符串a中截取最后一个字符。  输出:n
var c = a.substring(0 , 2);  // 从字符串a中截取第1,2个字符。 输出:cs
var d = a.indexOf('s');   // 从字符串a中查找第一个s出现的位置。 输出:1  

从例子可以看出,基数都是从0开始的。

var e = a.substring( a.length-1 ); //可以看出,substring第2个参数不写的话,
//默认 是到最后。
var f = a.substring( a.length-1 , a.length);//等价于

3):数字跟字符之间的转换:

数字转字符:

var number_to_string = number + “ ”; //方法1:添加一个空的字符串。
var number_to_string =String(number); //方法2:使用String()函数。
var number_to_string =number. toString(); //方法3:使用toString()函数。

注:toString()方法默认是以10进制转换。

如果要使用8进制转换可以 这么写: number. toString(8);

字符转数字:

var string_to_number = string – 0 ; //方法1: 字符串减去0。
var string_to_number = Number(string) ; //方法2:使用Number ()函数。
var string_to_number = parseInt(string) ; //方法3:使用parseInt ()函数。

方法1中不能 用string+0 ; 这样会导致字符串拼接,而不是类型转换。

方法2 中的Number函数转换,比较严格。

比如:

var a = "19cssrain86";
var b = Number(a);  //输出NaN.

如果我们使用方法3。

var c = parseInt(a); //输出 19

可以看出parseInt()会自动忽略非数字的部分。
parseInt()只取整数部分,忽略小数部分。
parseFloat()会把小数部分也取到。
和toString()一样,parseInt也有进制,默认是10进制。
如果想使用8进制,可以这么写:

parseInt( “077” , 8 ); // 输出63 = 7 * 8 + 7

当字符以0开头的时候,我们必须把 第二个参数 指明,不然js可能会以8进制去转换。

4):布尔类型:
布尔在数字环境中:true  转换为  1  ,false  转换为  0  。
在字符环境中:true  转换为  “true”  ,false  转换为  “false”  。
布尔转换:

var x_to_Boolean = Boolean(x); //方法1:使用Boolean ()函数。
var x_to_Boolean = !x; //方法2:使用 感叹号。

5):函数的定义:

方法1:普通定义

function square(x){
      return x*x;
}

方法2:函数直接量定义

var square = function(x){  return x*x; }   //推荐使用

方法3:构造参数

var square = new Function(“x”,”return x*x;”);   //效率低

6):对象:

如果有一个名为 cssrain 的对象 , 他有一个高度height的属性。
那么我们可以这么引用:
cssrain.height;
还可以使用关联数组定义:cssrain[“height”];

创建对象:

方法1:

var point = new Object();
point.x = 3;
point.y = 5;

方法2:使用对象直接量

var point = {x:3 , y:5 }

当然json也可以咯。

对象在字符的环境下,会调用toString()方法。数字环境下,会调用valueOf()方法。布尔环境下,非空对象为true;

7):数组:

常规数组:以非负整数做为下标。image[0]
关联数组:以字符做为下标。如:image[“width”]
js不支持多维数组,但数组里面可以嵌套数组。

创建数组:

方法1:

var a = new Array();
a[0] = “1”;
a[1] = 2;
a[2] = { x:1, y:3};

方法2:

var  a  =  new Array(“1” , 2 , {x:1,y:3} );

注意下:如果只传了一个参数;比如

var a = new Array(3);

那么它是表示:3个未定义元素 的 新数组。

方法3:使用数组直接量

var  a =[“1” ,  2 , {x:1 , y :3 }]; //注意外面的 括号  ,  不是花 括号。

8):null和undefined:
null表示无值;
undefined : 使用一个并未声明的变量,或者使用了已经声明的变量但未赋值或者使用了一个并不存在的属性。
undefined==null
如果要区分:
可以使用===  或者typeof运算符。

9 ,新手常遇到的疑惑:

var s =”you are right”;
var b = s.substring(s.lastIndexOf(“ ”)-1 , s.length);

疑惑:s是对象还是字符串,为什么字符串会有方法呢?
回答:s是字符串。之所以有方法 ,是因为 string类型 有一个相应的对象类(String)。
同样数字和布尔都有相应的Number , Boolean类。
Js会内部进行相应的包装对象。String对象就替换了原始的字符串。

总结:

简单了介绍了js中的一些概念(词法结构) 和 数据类型(部分)。

好了,今天就说到这里, 明天我们 继续。^_^。

笔记我已给部分群员看过,有好的评论也有不好的评论。所以我郑重声明下:这是我看了DOM编程艺术,悟透JavaScript,javascript权威指南5做的笔记,我资质不深,不能写出高深的文章,
如果你觉得笔记写得不好,可以不看我以后的。这篇文章就当作浪费你几分钟。

由于格式问题,建议下载Word版:

远程下载:http://www.cssrain.cn/demo/a/1-1.doc

本站下载:Javascript学习第一季1.rar (12.46 KB)

阅读下一篇笔记:Javascript学习第一季 二

标签:javascript,入门,字符,数组
0
投稿

猜你喜欢

  • Golang高性能持久化解决方案BoltDB数据库介绍

    2024-01-27 00:13:37
  • 使用python实现定时报天气的示例代码

    2021-12-27 14:56:10
  • Python 数据可视化之Matplotlib详解

    2022-12-30 05:33:21
  • sqlserver 数据类型转换小实验

    2024-01-15 06:00:21
  • Python操作SQLite数据库过程解析

    2024-01-26 08:16:38
  • matplotlib绘制直方图的基本配置(万能模板案例)

    2021-04-21 02:35:42
  • go语言实现猜数字小游戏的方法

    2024-02-12 11:47:18
  • linux系统中重置mysql的root密码

    2024-01-14 06:16:45
  • Django rest framework分页接口实现原理解析

    2023-08-22 21:26:36
  • Python实现简单多线程任务队列

    2022-07-29 13:21:43
  • 网站中美好的细节

    2011-07-13 18:43:07
  • Python SQLAlchemy库的使用方法

    2021-04-19 20:16:16
  • Golang控制协程执行顺序方法详解

    2024-02-20 13:00:21
  • 如何在数据库中限制检索行数?

    2010-06-22 21:04:00
  • MySQL借助DB实现分布式锁思路详解

    2024-01-16 03:17:13
  • 浅谈pandas中对nan空值的判断和陷阱

    2021-01-06 12:40:20
  • 带农历及节日的js日历源码

    2010-08-01 17:38:00
  • 取巧的边框等高

    2009-12-16 12:11:00
  • 4个Web图片在线压缩优化工具

    2009-10-13 21:02:00
  • opencv python 傅里叶变换的使用

    2022-07-27 14:55:03
  • asp之家 网络编程 m.aspxhome.com