《javascript高级程序设计》

将自己在阅读《javascript高级程序设计》一书的笔记记录下来

第一章------第四章

《javascript高级程序设计》_第1张图片
下载.jpg

第五章

5.6基本包装类型
引用类型与基本包装类型的主要区别就是对象的生存期。

使用new操作符创建的引用类型的实例,会在代码离开当前作用域之前一直存在,而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后被销毁。

var s1 = "some  text";
s1.color = "red";
alert(s1.color);      //代码返回undefined

第二行代码试图为s1添加一个color属性,但是当代码执行到第三行时,第二行创建的string对象已经被销毁了。所以当调用s1实例时,会返回undefined

需要注意使用new调用的函数,会被转换为所调用函数的类型

var value = "25";
var number = Number(value);    //转型函数
alert(typeof number);                  //"number"

直接调用同名的转型函数,则不会被转换

var value = "25"
var obj = new Number(value);         //构造函数
alert(typeof obj)                                //"object"

5.6.3 String类型
三个基于字符串创建新字符串的方法

  • slice(a,b); a表示字符串开始位置,b表示字符串截至位置
  • substr(a,b); a表示字符串开始位置,b表示要返回的字符个数
  • substring(a,b); a表示字符串开始位置,b表示字符串截至位置
var stringValue  = "hellow world";
alert(stringValue.slice(3));    //"lo world"
alert(stringValue.substr(3,7));   //"lo worl"
alert(stringValue.substring(3,7));   //"lo w"

如果传入的a,b是负值

  • slice(a,b); 将传入的负值与字符串的长度想加
  • substr(a,b); 会将传入的a加上字符串的长度,(b)转换为0
  • substring(a,b); 会将所有负值参数转换为0 (*如果转换后的值 a>b则变成(b,a))
var stringValue = "hello world";
alert(stringValue.slice(-3));              //"red" (11+-3=8)
alert(stringValur.substring(-3));         //"hello world"
alert(stringValue.substring(3,-1));         //"hel"     因为转换后3>0 所以变为(0,3)

你可能感兴趣的:(《javascript高级程序设计》)