阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JavaScript string 类型

      字符串的特性;

      • 由0个或多个16位unicode字符组成;
      • 引号包裹,单引号和双引号都可以;但是单引号和双引号不能交叉使用;(放在引号内的任何东西都是属于字符串,即使里面没有东西或者是空格,都属于合法的字符串 )
      var str1="2";
      var str2='2';
      var str3="";
      var str4=" ";
      var str5="function(){}";
      //上面都是合法的string类型
      console.log(typeof str1);
      console.log(typeof str2);
      console.log(typeof str3);
      console.log(typeof str4);
      console.log(typeof str5);	
      
      • 使用.length属性可以访问字符串的长度;

        • length计算包括空格
        //字符串长度
        var strTest1="anbang";//共6个
        var strTest2="安邦的JavaScript学习笔记";//共17
        console.log(strTest1.length);//6
        console.log(strTest2.length);//17
        //这只是个简单的判断,如果想用JavaScript判断或者获取所占的字节,就不能这么判断了,
        //因为中文和英文字符所占的字节长度不同,所以要想获得中文字符的真正长度,
        //就需要对输入的字符进行判断或过滤(可以unicode区间进行判断),如果符合中文字符,则使用不同的标准。	
        
        
        
      • 无法精确返回双字节字符长度(上面已经做说明)

      • 转义序列表示一个字符

      • 字符串一旦被创建,其值是不能改变的,若要改变必须销毁原有字符串,然后用另一个包含新值的字符串填充改变量;

      //字符串创建的原理;
      var str1="12345";//把"12345"这个字符串赋值给str1这个变量;
      str1="1234";//把"1234"这个字符串赋值给str1这个变量;
      /*
      * 并不是把"12345"修改为"1234"然后赋值给str1
      *
      * */
      console.log(str1);//"1234"
      console.log('1"23\'4\n56\'78');
      //    alert("1213123\naaaaaa")
      

      转义序列

      • \n 换行,常用的,这个需要记住;
      • \\ 斜杠\是常用转义使用的
        • ' 单引号 常用
        • " 双引号 常用

      下面的仅作了解就可以了

      • \t 制表符
      • \b 空格
      • \r 回车符
      • \f 分页符
      • \xnn 十六进制,n代表0-F
      • \unnnn 以十六进制代码表示一个unicode字符

      类型转换

      • toString()

        • 把别的类型数据,转为字符串

          适用类型
          Number/Boolean/String/Object
          参数:number类型的数值基数;一般不需要写,仅作了解,如果需要按照2/8/16进制来转换,需要写;
          
      • String()

        • null
        • undefined
        • null和undefined没有toString方法,所以转换的时候用String()函数;
        var testNull=null;
        console.log(typeof testNull);//object
        //var testString2=testNull.toString();//Uncaught TypeError:Cannot read property 'toString' of null
        var testString3=String(testNull);
        console.log(typeof testString3);//string
        
      • eval()

        • 计算字符串表达式的值并以数值形式返回;

          //eval
          var evalVal="1+2+5+8+10";
          console.log(typeof evalVal);//string
          var evalComputed=eval(evalVal);
          console.log(evalComputed,typeof evalComputed);//26 "number"
          

      toString()String()

      var testNum=1;
      console.log(typeof testNum);//number
      var testTarget1=toString(testNum);
      var testTarget2=testNum.toString();//推荐用法
      var testTarget3=String(testNum);
      //var testTarget4=testNum.String();//错误的用法
      console.log(typeof testTarget1);//string
      console.log(typeof testTarget2);//string
      console.log(typeof testTarget3);//string
      

      快速转换成字符串

      如果把某个数据转化为字符串,可以有一个快捷的方式,就是把它与一个字符串"“相加就可以了;

      //+""用来转换字符串
      var numVal=2;
      var boolVal=false;
      var nullVal=null;
      var undefinedVal=undefined;
      
      var numValPlus=numVal+"";
      var boolValPlus=boolVal+"";
      var nullPlus=nullVal+"";
      var undefinedPlus=undefinedVal+"";z;
      console.log(numValPlus,typeof numValPlus);
      console.log(boolValPlus,typeof boolValPlus);
      console.log(nullPlus,typeof nullPlus);
      console.log(undefinedPlus,typeof undefinedPlus);
      

      某个数据并不仅限于Number类型;数组也可以的;

      console.log([1,2,3,4]+"");//1,2,3,4
      

      再看一组的加法(将字符串转为数字,注意浮点数的运算精度);

      字符串快速转换为数字

      字符串类型的数字,如果前面放+会隐式调用parseFloat

      +“1.1"可以转为Number类型

      console.log(+"1.2");	//1.2
      
      console.log("1.1" + 1.1);
      console.log(+"1.1" + 1.1);
      console.log((+"1.1") + (+1.1));//2.2 注:加入括号为清楚起见,不是必需的。
      
      //toString方法;
      //22 - > "22"
      console.log(typeof 22);
      console.log(typeof (22).toString());
      var testStr=22+"";//隐式调用toString方法
      console.log(typeof 22+"");//+ - * / 2*2+10
      console.log(typeof testStr);//2*(2+10)
      
      //eval()
      console.log("00000000000000000");
      console.log(eval("22+12"));//"22+12" -> 22+12 ->34
      
      
      //
      console.log("**********************");
      console.log(typeof (22+""));//string  22 -> "22"
      console.log(typeof (+"22"));//"22" -> 22 单目运算符+
      console.log([1,2,3,4]+"");//1,2,3,4
      
      console.log("**********************");
      console.log("1.1" + 1.1);
      console.log(+"1.1" + 1.1);
      console.log((+"1.1") + (+1.1));
      
      目录
      目录