JS 数字 字符串 数组

本文介绍了JavaScript中的数字对象,包括数字字符串的运算特性、NaN、Infinity以及Number对象的方法。接着讨论了字符串的转义字符、不变性以及遍历方式。最后,概述了数组的声明、方法和遍历技巧,强调数组在存储多值时的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、number 对象(数字对象)

1. 当数字字符串在进行数字运算 ( -、*、/ ) 时,字符串会转换成数字参加运算。

var x = "100", y = "10";

var z = x / y;       // z 将是 10

var z = x * y;       // z 将是 1000

var z = x - y;       // z 将是 90

var z = x + y;       // z 是 10010

总结: 数字字符串进行“+”运算时,表示级联;进行“ - * / ”运算时,会转换成数字,进行算术运算。
2. NaN 非数值

var x = 100 / "Apple";              // x 将是 NaN
isNaN(x);                          // 返回 true,因为 x 不是数   

var x = NaN, y = 5;
var z = x + y;                     // z 将是 NaN

var x = NaN, y = "5";
var z = x + y;                    // z 将是 NaN5

总结:

  1. NaN 是数,typeof NaN 返回 number;
  2. 使用函数 isNaN() 来判断某个值是不是数字;
  3. 假如在数学运算中使用了 NaN,则结果也将是 NaN。

3. Infinity

var x =  2 / 0;               // x 将是 Infinity
var y = -2 / 0;               // y 将是 -Infinity

注意: Infinity 是数,typeOf Infinity 返回 number。
4. 使用 toString() 方法转换成进制字符串

var myNumber = 128;
myNumber.toString(16);         // 转换成 16进制字符串,返回 80
myNumber.toString(8);          // 转换成 8进制字符串,返回 200
myNumber.toString(2);          // 转换成 2进制字符串,返回 10000000
myNumber.toString();          // 转换成字符串,返回 128

5. 使用 toFixed() 方法转换成固定小数部分位数的小数字符串

var x = 9.656;
x.toFixed(0);                  // 返回 10
x.toFixed(2);                 // 返回 9.66
x.toFixed(4);                 // 返回 9.6560
x.toFixed(6);                  // 返回 9.656000

6. 使用 valueOf () 方法求对象的数值,返回值是数字

var x = 123;
x.valueOf();                // 返回123,数据类型是number

在 JS 内部使用 valueOf() 方法,可将 Number 对象转换为原始值。
7. JS 全局方法

方法含义
Number()转换成数字
parseFloat()转换成浮点数
parseInt()转换成整数

全局方法适用于所有的数据类型:

// 1. Number() 不允许空格
x = "10 20";
Number(x);        // 返回 NaN。不允许空格
Number(new Date("2019-04-15"));  //返回1506729600000。Number()方法返回1970年1月1日至今的毫秒数

// 2. parseInt() 返回整数。允许空格。只返回第一个数字:
parseInt("10 20 30");   // 返回 10
parseInt("10 years");   // 返回 10
parseInt("years 10");   // 返回 NaN

// 3. parseFloat() 返回浮点数。允许空格。只返回首个数字:
parseFloat("10 20 30");  // 返回 10
parseFloat("10 years");  // 返回 10
parseFloat("years 10");  // 返回 NaN
二、string 字符串

1. 转义字符:用在字符串当中

字符含义
\’单引号
\"双引号
\\反斜杠
\b退格键
\f换页
\n换行
\r回车
\t水平制表符
\v垂直制表符

2. 字符串的方法
注意: 字符串执行以下操作后,原字符串都不变。

方法含义
str [ 0]通过索引获取字符串中的元素,返回获取的元素。如果不存在,则返回undefined。
它是只读的,不能通过给它赋值修改字符串的值
str. length返回字符串长度。
长代码换行: 最佳换行位置是某个运算符之后
str. indexOf ( " bd")返回字符串首次出现的索引,如果没有返回 -1
str. lastIndexOf( " bd")倒着往前看返回字符串首次出现的索引,如果没有返回 -1
str. indexOf( " China",18)返回起始索引开始往后字符串首次出现的索引,如果没有返回 -1。
第二个参数是查找字符串起始索引
str. lastIndexOf ( " China",50);返回起始索引开始倒着往前看字符串首次出现的索引,如果没有返回 -1。
第二个参数是查找字符串起始索引
str. search( " bd")返回字符串首次出现的索引,如果没有返回 -1
区别: search() 没有第二个设置搜索位置的参数,但可以使用正则;
indexOf() 可以设置第二个设置位置的参数,但不能使用正则。
str. slice( start 索引,end 索引)返回截取的字符串,包头不包尾。如果省略第二个参数,将截取起始位置后的所有字符串 ,索引可以是负值
str. substring( start 索引,end 索引)类似于 slice(),索引不能是负值
str. substr( start 索引,length 长度)返回截取的字符串。如果省略第二个参数,将截取起始位置后的所有字符串 ,索引可以是负值
str. replace( " 旧内容 “,” 新内容 ")替换首次出现的字符串,返回新的字符串。
str. toUpperCase()全部转换成大写,返回新的大写的字符串
str. toLowerCase()全部转换成小写,返回新的小写的字符串
str. concat( " sdfjs", " jkn")
str.concat(k).concat(h)
拼接多个字符串,返回拼接的新的字符串。多个参数用逗号隔开
str. trim()去除字符串两端空白, 返回新的字符串,
str. charAt( n 索引)返回索引位置处的字符
str. charCodeAt( n 索引)返回索引位置处的字符的编码
str. split( " 分隔符")把字符串转换成数组,返回数组。
如果分隔符是 “”,数组是间隔单个字符的数组
如果省略分隔符,数组只包含一个元素,元素是整个字符串。
String. fromCharCode( 编码)把字符编码转换成字符,并返回字符。
str. match( " bd")查找字符串,返回查找的字符串,没有返回 null

3. 字符串的遍历

// 方法 1:for 循环
 var s1="abcdefa";
     for(var i=0;i<s1.length;i++){
         console.log(s1[i]);
     }
          
//方法 2:for in
    for(var index in s1){             // in 前面定义索引变量,后面写字符串名称
        console.log(s1[index]);
    }
三、数组

1. 数组的声明

// 方法 1:常规声明,通过索引赋值
var arr=new Array();                 //声明
arr[0]=1;                           //赋值
arr[1]="a";
arr[2]=null;
arr[3]={};
arr[4]=true;
arr[5]=undefined;
arr[6]=function(){};

// 方法 2:常规声明,直接在内置对象Array()中赋值
var arr=new Array(5);         //赋一个数字,该数字表示数组长度,不是数组中的元素
var brr=new Array(1,2);       //赋多个数字就表示赋值
var crr=new Array("1");       //给数组赋了一个字符串,表示赋值               

// 方法 3: 简化声明 
 var d=[1,2,3,4];     // 1.括号内赋值
     d[7]=10;      // 2.通过索引赋值:可以给任意索引处赋值,没有赋值的地方位置留着,值为empty。
 console.log(d);    // 输出结果:[1, 2, 3, 4, empty × 3, 10]          

2. 数组的方法
数组:是一种特殊的变量,能够存放多个值。数组的值可以改变。

方法含义
cars [ 0]通过索引获取数组中的元素,返回获取的元素。如果不存在,则返回undefined。
可以通过给它赋值修改数组中的元素
cars. length返回数组的长度。
cars. push ( " bmw")给数组末尾添加一个元素,返回新数组的长度。原数组改变
cars. pop ( )删除数组的最后一个元素,返回删除的元素。原数组改变
cars. shift ( )删除数组的第一个元素,返回删除的元素。原数组改变
cars. unshift ( " bmw" )向数组开头添加新元素,返回新数组的长度。原数组改变
cars. toString( )把数组转换成字符 串,返回字符串,原数组不变。
cars. join ( " * ")把数组转换成字符串,返回字符串,原数组不变。可以设置分隔符。
cars. splice( 2,1," ddg"," dk")插入、删除或替换数组的元素,返回一个包含删除项的数组。原数组改变。
第一个参数定义了添加新元素的位置,第二个参数定义了删除元素的个数。其余参数定义了要添加的新元素。
cars. fill( " ddg",1,3)替换数组的元素,返回替换后的数组。原数组改变。
第一个参数是替换的新元素,第二个参数是替换的起始索引,第三个是结束的索引,取小不取大。后两个参数不写则全部替换。
cars. concat( b)拼接数组,返回拼接的新数组。原数组不变
cars. slice( start 索引,end 索引)截取数组,返回截取的数组,包头不包尾。如果省略第二个参数,将截取起始位置后的所有元素 ,原数组不变
cars. sort( )按字母顺序对数组进行排序,返回排序后的新数组。原数组改变
cars. reverse( )反转数组元素,返回反转后的新数组。原数组改变
cars. indexOf( " China",3)返回起始索引开始往后元素首次出现的索引,如果没有返回 -1。
第二个参数是查找字符串起始索引
cars. lastIndexOf ( " China",2);返回起始索引开始倒着往前看元素首次出现的索引,如果没有返回 -1。
第二个参数是查找字符串起始索引

数组的其他方法:

var a=[1,2,3];
var b=[4,5,6];
var m=a.concat(b);
    
// 1.every 返回值是 true/false。 检测数组里面的元素是否都符合条件。
 var boo=m.every(function (val, index){    //every 里面的参数是回调函数,回调函数的形参是值和索引
        return val>1;                      //判断是否满足条件               
    });
 console.log(boo);        //结果是:false  如果每个值都满足条件返回true,有一个不满足则返回false.

// 2.some  返回值是 true/false。判断数组中的元素是否是否有满足条件的,如果有满足条件的返回true,如果没有返回false.
 var isboo=k1.some(function (val,index,arr){
     if(val%5==0)
       {
         return val;
       }
     });
 console.log(isboo);
 
// 3.filter 返回值是过滤出的元素形成的数组。  过滤出满足条件的元素,并形成新数组返回。
 var fil=m.filter(function (val,index,arr){    //filter里面的参数是回调函数,回调函数的形参是值、索引和数组
    if(val>4)                        //判断是否满足条件  
    {
       return val;                  //满足条件则过滤出来
    }
   });
 console.log(fil);               // 结果是:[5, 6]。  原数组不变

// 4.find  查找数组里面满足条件的第一个值,并返回该值
 var mm=m.find(function (val,index,arr){  //find里面的参数是回调函数
     return val>4;                       //判断是否满足条件  
   });
 console.log(mm);            // 结果是:5。  原数组不变
  
// 5.map 映射产生新数组,返回值是新数组。原数组不变
  var k1=[1,2,3,4];
  var newarr=k1.map(function (val,index,arr){
      return val*2;
  });
  console.log(newarr);    // 结果是:[2,4,6,8]

// 6.reduce  累加器,数组中的元素进行运算后返回运算结果。原数组不变
 var k1=[1,2,3,4];
 var all=k1.reduce(function (val1,val2){
      return val1*val2;
  });
 console.log(all);   // 结果是:24

3. 数组的遍历:

// 方法 1:for 循环
 var s1=[2,4,6,2,3];
     for(var i=0;i<s1.length;i++){
         console.log(s1[i]);
     }
          
// 方法 2:forEach   无返回值
 s1.forEach(function (val,index,arr){
    console.log(value);               // 把对元素要进行的操作写在回调函数里
  });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值