JavaScript学习(二)

    二 基本数据类型

     Javascript是弱类型脚本语言,声明变量时无须指定变量的数据类型。 Javascript变量的数据类型里是解释时动态决定的。但 Javascript的值保存在内存中时,也是有数据类型的, Javascript的基本数据类型有如下5个

     ①数值类型:包含整数或浮点数。

     ②布尔类型:只有true或 false两个值。

     ③字符串类型:字符串变量必须用引号括起来,引号可以是单引号,也可以是双引号。

     ④undefined类型:专门用来确定一个已经创建但是没有初值的变量。

     ⑤null类型:用于表明某个变量的值为空。

    1、数值类型

      ① js的数值形式非常丰富,完全支持科学计数法。5.12e2 表示 5.12 乘以10的2次方。E为间隔符,不区分大小写。如果只有小数部分则可以省略整数部分的的0,但是小数点不能省略,如 .34e2

      ②js除了支持十进制外还支持八进制和十六进制,八进制以0开头,十六进制以0X或0x开头。

      ③当数值变量的值超出了其表数范围时,将出现两个特殊的值:Infinity(正无穷) 和 -Infinity(负无穷),前者表示数值超过数值类型的最大值,后者表示数值小于数值类型的最小值。

        当Infinity 和-Infinity 进行算术运算时得到是 NaN。Infinity、-Infinity 和其他普通数值运算时得到的结果依然是无穷大。

Infinity和-Infinity 进行比较运算时,两个Infinity 和 两个-Infinity也总是相等的。

      ④JS中的算术运算允许除数为0(除数和被除数可以同时为0,得到的结果为NaN),正数除0的结果是Infinity ,负数除0的结果是-Infinity。

      ⑤NaN是另外一个特殊的值,它是Not a Number 的缩写。表示非数。0除0 ,或 Infinity 和-Infinity 进行算术运算 都将得到NaN的结果。如果算术表达式中有个NaN的变量,则整个算术表达式的值为NaN。

       NaN与Infinity 和-Infinity 不同的是NaN 不会和任何一个数值变量相等。 也就是 NaN== NaN 是false。JS专门通过 isNaN() 来判断。 

      ⑥关于浮点数必须注意其精度丢失的问题。
       var a = .3333; var b = a * 5; 

       b的理论值为 1.6665。 实际的值为1.6664999999999999 

        这种由于浮点数计算产生的问题,在很多语言中都会出现。对于浮点数值的比较,尽量不要直接比较,例如直接比较b是否等于1.6665,将返回不相等。为了得到1.6665与b相等的结果,推荐使用差值比较法一一判断两个浮点型变量是否相等,通过判断两个浮点型变量的差值,只要差值小于一个足够小的数即可认为相等。

     2、字符串类型
      Javascript以 String内建类来表示字符串, String类里包含了一系列方法操作字符串, String类有如下基本方法和属性操作字符串。
     -String():类似于面向对象语言中的构造器,使用该方法可以构建一个字符串。
     -charAt():获取字符串特定索引处的字符。
     -charCodeAt():返回字符串中特定素引处的字符所对应的Unicode值。
     -length:属性,直接返回字符串长度。 Javascript中的中文字得算一个字符。
     -toUpperCase():将字符串的所有字母转换成大写字母。
     -toLowerCase():将字符串的所有字母转换成小写字母。
     -fromCharCode():静态方法,直接通过 String类调用该方法,将一系列 Unicode值转换成字符串。
     -indexOf():返回字符串中特定字符串第一次出现的位置。
     -lastIndexOf():返回字符串中特定字符串最后一次出现的位置。
     -substring():返回字符串的某个子串
     -slice():返回字符串的某个子串,功能比 substring更强大,支持负数参数。
     -match():使用正则表达式搜索目标子字符串。
     -concat():用于将多个字符串拼加成一个字符串。
     -spit():将某个字符串分隔成多个字符串,可以指定分隔符。
     -replace():将字符串中某个子串以特定字符串替代。
     -search():使用正则表达式搜索目标子字符串

    

     ①JS的索引与Java字符串里字符索引类似。JS字符串的第一个字符的索引是0

     ②substring(start[,end]); 从start 索引处 截取到end(不包括) 索引处。end可以省略。如果没有 end 则截取到字符串尾
注意当end 比 start小时,就会变成从 end 处开始 到 start (不包括),不接收负数索引 当start 、end 小于 0 时 按 0 处理。
'12345678'.substring(3,-10); 结果为 '123'

'12345678'.substring(3,1); 结果为 '23'

     ③slice(start,[,end]); 与substring 基本一致,只是可以接受负数索引,当使用负数索引时,表示从字符串的右边开始
计算索引,即最右边的索引为-1;
'12345678'.slice(3,-1); 结果为 '4567'

注意当 负数索引的位置小于start时,截到的串是空的

     3、undefined 和 null

      undefined类型的值只有一个 undefined,该值用于表示某个变量不存在,或者没有为其分配值,也用于表示对象的属性不存在。 null用于表示变量的值为空。 undefined与nul之间的差别比较微妙,总体而言, undefined表示没有为变量设置值或属性不存在:而null表示变量是有值的,只是其值为 null但如果不进行精确比较,很多时候 undefined和mull本身就相等,即 null=undefined.返回true如果要精确区分nul和 undefined,应该考虑使用确等于符(===)

     三、复合类型

      复合类型是由多个基本数据类型(也可以包括复合类型)组成的数据体。js中的复合类型大致分为3种。
       ① Object 对象
       ② Array  数组
       ③ Function 函数
     1、对象

       对象时一系列命名变量、函数的集合。其中命名变量的类型既可以是基本数据类型,也可以是复合类型。对象中的命名变量称为属性,而对象中的函数称为方法。对象访问属性和函数的方法是通过“.” 实现的。

     2、数组

      一、数组是一系列的变量。js中的数组元素类型可以不相同。

      定义数组有三种语法:

       ① var a = [3,4,5];

       ② var b = [];

       ③ var c =new Array();

      二、数组的特征

      ① js 数组的长度可以随意变化,它总是等于所有元素索引最大值 +1

      ② 同一数组中的元素可以互不相同

      ③ 访问数组元素时不会产生越界,访问未被赋值的元素时,值为undefined。

       三、 js 的数组可以相当 java中的数组、list 集合  

       数组作为栈使用时,有如下两个方法。

        ① push(e) 元素入栈

        ② pop() 元素出栈

        数组作为队列使用时

         ①unshift(e) 元素入队列

         ② shift() 元素出队列

       四、 Array 对象的其他方法

        ①concat(value,...)   为数组添加一组元素,返回追加元素后的数组,但原数组未改变。

        ② join([separator]) 将数组的多个元素拼接在一起,组成字符串后返回。

        ③ reverse() 数组反转

       ④ slice(start[,end]) 截取数组在start和end 索引之间的子数组,如果start 和end 为正,则从 左边开始,为负从右边开始。但是原数组不会变。

       3、函数

        函数可以包含一段可执行性的代码,亦可以接受调用者传入的参数。在函数的声明中,参数列表不需要数据类型声明,返回值也不需要。

        函数定义的语法格式:

        function functionName (param1,param2,... ) 

          {

           }

        函数的调用语法

        functionName(param1,param2,... );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值