JavaScript的基本类型值-String类型

大致介绍

  String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。在JavaScript中没有单个的字符型,都是字符串。字符型就相当于只包含一个字符的字符串。

引号

  字符串可以由双引号(“”)或单引号(‘')表示,但是要注意,如果是双引号开始就要以双引号结束,单双引号是可以嵌套的

"hello"; //正确
        'hello'; //正确
        'hello"; //错误
        "hel'l'o"; //正确

转义字符

  String数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他用途的字符。

\0 空字节
        \n 换行
        \t 制表
        \b 空格
        \r 回车
        \f 进纸
        \\ 斜杠
        \' 单引号
        \" 双引号
        \xnn 以十六进制nn表示一个字符(n为0-f),如\x41表示'A'
        \unnnn 以十六进制nnnn表示一个Unicode字符(n为0-f),如\u03a3表示希腊字符ε

  如果在非特殊转移字符前使用反斜杠,则反斜杠会被忽略

'\a' //"a"

  如果字符串需要包含反斜杠,则需要在反斜杠前面在多加一个反斜杠用来转义

'\\a' //"\a"

特点

  JavaScrit中的字符串是不可变的,也就是说,字符串一旦被创建,他们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后在用另一个包含新值得字符串填充改变量

  例如:

vara lang = 'Java';
  lang = lang + 'Script'; 

   以上代码的执行过程:首先创建一个能容纳10个字符的新字符串,然后在这个字符串中填充“Java”和“Script”,最后一步将原来的字符串“Java”和“Script”销毁

字符串与数组

  字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)。

var s = 'hello';
        s[0] // "h"
        s[1] // "e"
        s[4] // "o"
        // 直接对字符串使用方括号运算符
        'hello'[1] // "e"  

  如果方括号中的数字超过字符串的长度,或者方括号中根本不是数字,则返回undefined。

'abc'[3] // undefined
        'abc'[-1] // undefined
        'abc'['x'] // undefined

  但是,字符串与数组的相似性仅此而已。实际上,无法改变字符串之中的单个字符。

  var s = 'hello';
  delete s[0];
  s // "hello"
  s[1] = 'a';
  s // "hello"
  s[5] = '!';
  s // "hello"

length属性

  length属性返回字符串的长度,这个属性也是无法改变的

 var s = 'hello';
  s.length // 5
  s.length = 3;
  s.length // 5 

转为字符串

  要把一个值转换为字符串有两种方式:toString()和String()

  注意:空字符串"" + 值,也可以将该值转为字符串

  toString()

  几乎每个值都有toString()方法,这个方法唯一要做的就是返回相应值得字符串表现

  注意:null和undefined没有这个方法

undefined.toString();//错误
  null.toString();//错误
  true.toString();//'true'
  false.toString();//'false'
  'abc'.toString();//'abc'
  1.23.toString();//'1.23'
  ({}).toString();//[object Object]
  [1,2,3,4].toString();//'1,2,3,4'
  (new Date()).toString();//"Sun Jun 05 2016 10:04:53 GMT+0800 (中国标准时间)"
  /ab/i.toString();//'/ab/i'

  还可以通过指定基数,来改变输出的值(基数默认是十进制)

 var num = 10;
  console.log(num.toString()); //10
  console.log(num.toString(2)); ///1010
  console.log(num.toString(8)); //12 

  String()

  String()能将任何类型的值转换为字符串,包括null和undefined

  转换规则:

      1、如果值是null,则返回'null';如果值是undefined,则返回'undefined'

      2、如果值不是null或undefined,则调用toString()方法并返回原始类型值

      3、若使用toString()方法返回的是对象,则再调用valueOf()方法返回原始类型值,若使用valueOf()方法返回的是对象,会报错

String(null) //"null"
  String(undefined) //"undefined"
  String(true) ///"true"
  String({toString:function(){return 3}}); //3

以上所述是小编给大家介绍的JavaScript的基本类型值String类型,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • js中关于一个分号的崩溃示例

    复制代码 代码如下: if ($("span", $("#txtStere").siblings("div")).text() === "*"); { if (!IsNum("#txtStere")) { $("#txtStere").next().text("您选择的运费模板是按体积计价,物流体积不能为空且需是数字"); return false; } else {

  • 浅析Javascript的自动分号插入(ASI)机制

    前言 相信从事过C#和Java的大家都知道分号是用作断句(EOS,end of statement)的,而且必须加分号,否则编译就不通过了.但JavaScript由于存在ASI机制,因此允许我们省略分号.ASI机制不是说在解析过程中解析器自动把分号添加到代码中,而是说解析器除了分号还会以换行为基础按一定的规则作为断句的依据,从而保证解析的正确性. 规范理论 es5 标准定义了自动分号插入规则,包括以下三个基本规则加两个前置条件: 前置条件 1.如果插入分号后解析结果是空语句,那么不会自动插入分号

  • 浅谈javascript的分号的使用

    JS中function 的开头有必要加分号吗?js语句后应该加分号吗? javascript大括号后面应使用分号吗?JS中function 的开头有加感叹号.分号是什么意思呢? Js多个文件集成成一个文件后,压缩代码时避免发生语法错误,可以如下处理 一.js 前加分号 例如:;(function($){...此处代码...})(); Javascript中分号表示语句结束,在开头加上,是为了压缩的时候和别的方法分割一下,表示一个新的语句开始 二.js函数后加分号 例如 // 模块1 // 前面有

  • 如何防止JavaScript自动插入分号

    在 JavaScript 中,行尾的分号有一种自动插入机制,这样子,可以容忍某些朋友忽略了输入分号. 当然你最好养成输入分号的习惯,同时掌握 JavaScript 是如何处理忽略输入分号的情况的,因为这种知识有助于你理解没有分号的代码. JavaScript语言有一个机制:在解析时,能够在一句话后面自动插入一个分号,用来修改语句末尾遗漏的分号分隔符.然而,由于这个自动插入的分号与JavaScript语言的另一个机制发生了冲突,即所有空格符都被忽略,因此程序可以利用空格格式化代码. 这两种机制的冲

  • JavaScript基本类型值-Undefined、Null、Boolean

    大致介绍 ECMAScript中有5中简单的数据类型(也称为基本数据类型):Undefined.Null.Boolean.Number.String. Undefined Undefined时全局变量的一个属性,它只有一个值即:undefined.当使用var声明变量但未对其初始化时,这个变量的值就是undefined. var test; console.log(test); //undefined 对于未声明过的变量只能进行一种操作,即typeof检测其数据类型 //var a consol

  • JavaScript基本类型值-Number类型

    大致介绍 在JavaScript的内部采用IEEE754格式来表示数字,所以不区分整数和浮点数,都是用64位浮点数的形式储存.就是说,在JavaScript内部,就根本没有小数.但是有些运算必须得需要整数完成,所以JavaScript有时会把64位的浮点数转换成32位的整数,再进行运算. 整数 JavaScript对整数提供四种表示方法: 1.二进制:有前缀0b的数值,出现0,1以外的数字会报错 2.八进制:有前缀0o的数值,或者是以0后面再跟一个数字(0-7).如果超出了前面所述的数值范围,则

  • JS 分号引起的一段调试问题

    来看一下下面的代码: var a=textbox1.text; var b=5; if(a<b);//如果用户输入的值小于5,就取5 { a=b; } 看看执行后有什么效果,无论textbox1.text是什么值,都会时放条件判断.为什么呢.有没有什么发现. 原来在写代码的时候,if(a<b);这里多了个分号.一不小心犯的错,却花了不少时间来解决. 注:刚写下的经过,再次打开时,没有内容了.因此就精简一点了.写个大致意思了

  • javascript 分号总结及详细介绍

    javascript每条语句都是以分号结束,但由于javascript具有分号自动插入规则,所有不同的编程人员有不同的习惯,有的加分号,有的不加分号,那么到底加分号好还是不加分号好?本文章向大家探讨javascript每条语句该不该加分号. javascript的分号代表语句的结束符,但由于javascript具有分号自动插入规则,所以它是一个十分容易让人模糊的东西,在一般情况下,一个换行就会产生一个分号,但实际情况却不然,也就是说在javascript中换行可能产生分号,也可能不产生,是否自动

  • JavaScript中的分号插入机制详细介绍

    仅在}之前.一个或多个换行之后和程序输入的结尾被插入 也就是说你只能在一行.一个代码块和一段程序结束的地方省略分号. 也就是说你可以写如下代码 复制代码 代码如下: function square(x) {     var n = +x     return n * n } 但是却不可以写的像下面代码一样,这样就报错了哦 复制代码 代码如下: function area(r) {    r = +r    return Math.PI*r*r }//error 仅在随后的输入标记不能解析时插入

  • JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)

    看代码: HTML: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta htt

  • 走进javascript——不起眼的基础,值和分号

    值 有时我很想知道javascript解析引擎是如何区分一个变量的值,比如下面这段代码. var x = 'javascript'; //javascript x = "hello"; // hello x = 555; //555 x = null; //null x = a; //a is not defined x = true; //true 对于数字是直接赋值的,因为它没有多样性,数字就是数字.但是对于值是英文的情况就很难区分了,因为在编程语言中,英文既可能是字符串,也可能是

随机推荐