javascript 学习 第9天 基本包装类型

1,Boolean,String,Number

在创建字符串 布尔值 数字类型的变量的时候 引擎会创建一个对应的基本包装类型

通过基本包装类型来提供本类型的 属性和 方法

基本包装类型是一个引用类型

基本包装类型的生命周期只有一行代码

在创建变量时 给包装类型添加的属性和方法都是无效的

在上一行添加的属性和方法 在下一行已经不存在了

在实际工作中一半不要创建基本包装类型

2,所有的包装类型都是引用类型 

基本类型 和基本类型的包装类型 是两个不一样的值

3,Boolean 包装类型

初始化  

var obj=new Boolean(false)

也可以用下面这种

var obj=new Object(false)

new Object() 传入的是数字的话 就是一个数字类型的包装类型 

传入字符串的话 就是字符串的包装类型

传入布尔值的话 就是布尔值类型的包装类型

  

var boo=false;
undefined
var boobj=new Boolean(false);
undefined
var obj=new Object(false);
undefined
typeof boo;
"boolean"
typeof boobj;
"object"
typeof obj;
"object"
boobj instanceof Boolean;
true
boobj instanceof Object;
true
obj instanceof Boolean;
true
使用 typeof 可以查看 基本类型和基本类型的包装类型不是同一种类型

使用 instanceof 可以判断 包装类型是那一种基本类型的 包装类型 

可以发现 使用 Boolean 和 Object(false) 创建出来的包装类型都是 Boolean 包装类型

基本boolean 类型 和 Boolean 的包装类型进行布尔操作的时候 结果不一致 

Boolean 包装类型的 ! 运算 总是返回 false

!(new Boolean());
false

4,Number 包装类型

几个方法:

toFixed() 保留小数点后面的有效数字 一个参数 表示要保留的小数点后面的数字的位数 按照四舍五入保留

0.666666666.toFixed(5);
"0.66667"
toExponential() 将数字按照科学计数法表示 

0.00000000001.toExponential()
"1e-11"

100000000000.toExponential()
VM822:1 Uncaught SyntaxError: Invalid or unexpected token
var a=100000000000;
undefined
a.toExponential()
"1e+11"

直接点的话就报错了 不知道为什么

toPrecision() 根据数字 在toFixed() 和 toExponential() 选择一种合理的表示方法 传入一个参数表示 从第一个非0 的数字开始的有效数字的位数

 

var a=0.000000000000000001;
undefined
var b=0.111111111111111;
undefined
a.toPrecision()
"1e-18"
b.toPrecision(5)
"0.11111"
5,String 包装类型

几种方法:

slice() 可以从字符串中取出一部分 传入两个参数 [开始下标,结束下标) 含头不含尾 不会影响原字符串

var str="suklasukla";
undefined
str.slice(1,3);
"uk"
str
"suklasukla"
传入正数的话 就从左往右数 从0开始数

传入负数的话 就从右往左数 从-1开始数 

都是从左往右取出字符串

如果第一个参数 不比 第二个参数大 那么就返回一个长度为0的字符串

var str="SuklaSukla";
undefined
str.slice(-2,-1);
"l"
str.slice(2,1);
""
substr() 取字符串 第一个参数表示开始取的下标 第二个参数表示要取出的 字符 的个数

substring() 和substr() 的参数的意义一样

var str="SuklaSukla";
undefined
str.substr(0,5)
"Sukla"
str.substring(0,5)
"Sukla"

indexOf() 从左往右 查找字符

lastIndexOf() 从右往左查找字符

var str="SuklaSukla";
undefined
str.indexOf("S")
0
str.lastIndexOf("S")
5

trim() 去掉字符串开头和结尾的空字符 并不会修改字符串本身

var str="		SuklaSukla    ";
undefined
str.trim()
"SuklaSukla"
str
"		SuklaSukla    "

toLowerCase() 转为小写字母

toUpperCase() 转为大写字母

var str="SuklaSukla";
undefined
str.toLowerCase()
"suklasukla"
str.toUpperCase()
"SUKLASUKLA"
str
"SuklaSukla"
不会改变原字符串



replace() 替换匹配的字符 

第一个参数表示要匹配的字符 可以直接传字符串 也可以传入一个正则表达式 默认匹配第一个  /g 表示匹配全部 /i 表示忽略大小写

第二个参数表示要用来替换匹配到的字符的字符 可以是一个函数 用来处理匹配到的字符

var str="SuklaSukla";
undefined
str.replace("S","123")
"123uklaSukla"
str.replace(/S/g,"123")
"123ukla123ukla"
str.replace(/S/i,"123")
"123uklaSukla"
str.replace(/S/ig,"123")
"123ukla123ukla"
str.replace(/S/ig,function(val){return 123;})
"123ukla123ukla"
str
"SuklaSukla"

String.fromCharCode() 传入一个正整数 转化为对应的字符 是String 包装类型的静态方法

charCodeAt() 将字符串的首个字符的ASC 码返回  

var str="Sukla";
undefined
str.charCodeAt();
83
String.fromCharCode(83)
"S"

















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值