1.1 JavaScript数据类型

1      数据类型

JavaScript 有六种数据类型。主要的类型有numberstringobject 以及 Boolean 类型,其他两种类型为 null undefined

1.1      number类型

(1)支持十进制和十六进制。八进制部分支持,最好不要用。

(2)取值范围(-253~253)

(3)0和负0   0 === -0(true)

(4)零可以为被除数

1/0  正无穷大

1/-0  负无穷大

(5)使用数字时,尽量不要使用小数,存在精度问题

示例:

var x = 0.3-0.2;  --> 0.09999999999999998

var y = 0.2-0.1;  --> 0.1

x != y

(3)Math对象的常用方法。

round(x)

把数四舍五入为最接近的整数。Math.round(-4.60) -5

Math.round(-4.40) -4

floor(x)

对数进行下舍入。

Math.floor(0.60)  0

Math.floor(5.1)   5

Math.floor(-5.1)  -6

Math.floor(-5.9)  -6

ceil(x)

对数进行上舍入。

abs(x)

返回数的绝对值。

max(x,y)

返回 x y 中的最高值。

min(x,y)

返回 x y 中的最低值。

random()

返回 0 ~ 1 之间的随机数。

sqrt(x)

返回数的平方根。

 

1.2      string类型

1)需要注意的是,JavaScript 的字符串是不可变的(immutable),String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。

2)转义字符”\”.

3length属性

var ss ="abcde";   ss.length = 5

4)常用方法:

charAt()

返回在指定位置的字符。

ss.charAt(2)  -->c

substr(start,length)

 

start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2  指倒数第二个字符,以此类推。

length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

var str="Hello world!"

str.substr(3)  -->   lo world!

str.substr(3,7) -->  lo worl

substring(start,stop)

Start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

stop可选。一个非负的整数,比要提取的子串的最后一个字符在  stringObject 中的位置多 1。

如果省略该参数,那么返回的子串会一直到字符串的结尾。

【注意】与 slice() substr() 方法不同的是,substring() 不接受负的参数。

slice(start,end)

提取字符串的片断,并在新的字符串中返回被提取的部分。

start要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2  指倒数第二个字符,以此类推。

end紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

var str="Hello happy world!"

str.slice(6)  --> happy world!

str.slice(6,11) --> happy

str.slice(-3) --> ld!

str.slice(-10,-2)  --> ppy worl

【注意】String 对象的方法 slice()、substring() 和 substr() (不建议使用)都可返回字符串的指定部分。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。slice() 与 substr() 有所不同,因为它用两个字符的位置来指定子串,而 substr()  则用字符位置和长度来指定子串。

indexOf()

返回某个指定的字符串值在字符串中首次出现的位置。

var str="Hello world!"

str.indexOf("World")  --> -1

str.indexOf("world")  --> 6

replace()

替换与正则表达式匹配的子串。

var str="Visit Microsoft!"

str.replace(/Microsoft/, "W3School")

Visit W3School

 

 

 

1.3      boolean类型

(1)       此类型有两个取值,truefalse

(2)       任意的JavaScript的值都可以转换成布尔值

如:undefinednull0-0NaN””(空字符串),都被转换成false

1.4      object类型

1.5      null

它表示一个特殊值,常用来描述“空值”。typeof(null)返回object,说明null认为是一个特殊的对象值。

包含 null 的变量包含“无值”或“无对象”。换句话说,该变量没有保存有效的数、字符串、boolean、数组或对象。可以通过给一个变量赋 null 值来清除变量的内容。

 

1.6      undefined

表示变量的一种取值,表明变量没有初始化,如果要查询对象属性或者数组元素的值时返回undefined,说明这个属性或元素不存在。typeof(undefined)返回undefined

【注意】:nullundefined是不同的,但是他们都表示“值的空缺”,二者常常可以互换。二者都不包含任何的属性和方法。

2      类型转换

2.1      相等性转换

null ==undefined;

"0" ==0;

0 == false;

"0" ==false;

都返回true

2.2      转换成字符串

使用toString()或者与””(空字符串)相加

示例:var num = 5.8;

num.toString()  --> “5.8”

num+”” -->”5.8”

2.3      转换成数字

2.3.1       parseInt()

在判断字符串是否是数字值前,parseInt() parseFloat() 都会仔细分析该字符串。

parseInt() 方法首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,该方法将返回 NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置 1 处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止,此时 parseInt() 将把该字符之前的字符串转换成数字。

例如:

parseInt(“12345red”) --> 12345

parseInt(“123.33”) --> 123  (舍去小数部分)

parseInt() 方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。

示例:

parseInt("10");              //返回 10

parseInt("19",10);         //返回 19 (10+9)

parseInt("11",2);           //返回 3 (2+1)

parseInt("17",8);           //返回 15 (8+7)

parseInt("1f",16);          //返回 31 (16+15)

parseInt("010");            //未定:返回 10 8

2.3.2       parseFloat()

parseFloat() 方法与 parseInt() 方法的处理方式相似,从位置 0 开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字符之前的字符串转换成整数。

不过,对于这个方法来说,第一个出现的小数点是有效字符。如果有两个小数点,第二个小数点将被看作无效的。parseFloat() 会把这个小数点之前的字符转换成数字。

示例:parseFloat(“11.22.33”)  --> 11.22

使用parseFloat() 方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,而不是用八进制或十六进制。该方法会忽略前导 0,所以八进制数 0102 将被解析为 102。对于十六进制数 0xA,该方法将返回 NaN,因为在浮点数中,x 不是有效字符。

2.4      显示类型转换

Number3  --> 3

Stringfalse --> “false”

Boolean(“dw”) --> true

3      包装对象

3.1      Boolean 对象

3.2      Number 对象

3.3      String 对象

4      数组

4.1      创建

Var a = []; 等价于  var a = new Array()

Var a = [2,3,true,”a”,]; 可以类型不同,也结尾可以有逗号

Var a = new Array(10);

4.2      数组的读写

a[0]=1;

4.3      数组元素的添加、删除

push() pop()    shift()  unshift() delete a[2]

push()

向数组的末尾添加一个或更多元素,并返回新的长度。

pop()

删除并返回数组的最后一个元素[LQ1] 

unshift()

向数组的开头添加一个或更多元素,并返回新的长度。

shift()

删除并返回数组的第一个元素[LQ2] 

delete

删除   例:delete a[2]

 

4.4      数组的遍历

for() for/in  forEach()

var data = [1,2,3,4,5,6,7,8,9];

var sum = 0;

(1)   for循环

for(vari=0; i<data.length; i++)

{

               sum += data[i];

        }

(2)   for/in

for(var iin data)

{

               sum2 += data[i];

        }

(3)   forEach

data.forEach(function(value){

               sum += value;

        });

4.5      数组其他常用方法

(1)   映射数组

var data2 = data.map(function(x){return x*x});

-->[1,4, 9, 16, 25, 36, 49, 64, 81]

(2)   过滤数组

var smallvalues = data.filter(function(x){return x<5});

-->[1, 2, 3, 4]

(3)   数组是否包含某个元素

indexOf()第一次出现的位置

lastIndexOf()最后一次出现的位置

示例:

var a = ["s","dwss","ff",”s”];

a.indexOf("ff") -- > 2

a.indexOf("f") -- >  -1(不存在时返回-1)

a.lastIndexOf("ff") -- >  3

(4)   指定的分隔符进行分隔数组 join()

var arr = [“aa”,”bb”,”cc”];

arr.join(“_”); --> aa_bb_cc

(5)   排序 sort()

Var arr = [“George”,”John”,”Thomas”,”James”,”Adrew”,”Martin”];

Arr.sort(); --> Adrew,George,James,John,Martin,Thomas

(6)   连接数组 concat()

Var a = [“a1”,”a2”];

Var b = [“b”];

Var c = [“c”];

a.concat(b)--> a1,a2,b

a.concat(b,c)--> a1,a2,b,c

5      Date

5.1      创建、设置

 vartoday = new Date();  -->当前时间

var d1 = new Date();

d1.setFullYear(2013,2,6);  -->201336

5.2      获取时间

var year = today.getFullYear();     //

var month = today.getMonth() + 1;  //月(0~11

var day=today.getDate();          //

var xingqi = today.getDay();       //星期几

var h=today.getHours()           //

var m=today.getMinutes()         //

var s=today.getSeconds()          //

5.3      比较日期大小

两个日期相减,返回的是两个日期间的毫秒数。

示例:

var d1 = new Date();

d1.setFullYear(2013,2,6);

var d2= new Date();

d2.etFullYear(2013,2,5);

d1 – d2 = 86400000  (60*60*24*1000)

5.4      实现日期加几天addDate ()

var x=new Date();

x.setFullYear(2013,2,6);

function addDate(dd,dadd){ 

       //vara = new Date(dd) 

       a= dd.valueOf() 

       a= a + dadd * 24 * 60 * 60 * 1000 

       a= new Date(a) 

       returna; 

}

 

alert(addDate(x, 2))   –> Fri Mar 08 2013 10:31:53 GMT+0800


 [LQ1]push() pop()相当于对栈操作

 [LQ2]unshift()shift()相当于对队列操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值