热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javascript学习笔记之基本包装类型

2019独角兽企业重金招聘Python工程师标准为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类型:Boolean、Number

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类型:Boolean、Number

和String。这些类型与其他引用类型相似,但同时也具有与各自的基本类型相应的特殊行为。

实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,

从而能够调用一些方法来操作这些数据。

一.基本包装类型概述

varbox='Mr. Lee'; //定义一个字符串

varbox2=box.substring(2); //截掉字符串前两位

alert(box2); //输出新字符串

变量box是一个字符串类型,而box.substring(2)又说明它是一个对象(PS:只有对象才

会调用方法),最后把处理结果赋值给box2。'Mr. Lee'是一个字符串类型的值,按道理它不

应该是对象,不应该会有自己的方法,比如:

alert('Mr.Lee'.substring(2)); //直接通过值来调用方法

1.字面量写法:

varbox='Mr. Lee'; //字面量

box.name='Lee'; //无效属性

box.age=function(){ //无效方法

return100;

};

alert(box); //Mr.Lee

alert(box.substring(2)); //.Lee

alert(typeofbox); //string

alert(box.name); //undefined

alert(box.age()); //错误

2.new运算符写法:

varbox=newString('Mr.Lee'); //new运算符

box.name='Lee'; //有效属性

box.age=function(){ //有效方法

return100;

};

alert(box); //Mr.Lee

alert(box.substring(2)); //.Lee

alert(typeofbox); //object

alert(box.name); //Lee

alert(box.age()); //100

以上字面量声明和new运算符声明很好的展示了他们之间的区别。但有一定还是可以

肯定的,那就是不管字面量形式还是new运算符形式,都可以使用它的内置方法。并且

Boolean和Number特性与String相同,三种类型可以成为基本包装类型。

PS:在使用new运算符创建以上三种类型的对象时,可以给自己添加属性和方法,但

我们建议不要这样使用,因为这样会导致根本分不清到底是基本类型值还是引用类型值。

二.Boolean类型

Boolean类型没有特定的属性或者方法。

三.Number类型

Number类型有一些静态属性(直接通过Number调用的属性,而无须new运算符)和方

法。

Number静态属性

属性 描述

MAX_VALUE 表示最大数

MIN_VALUE 表示最小值

NaN 非数值

NEGATIVE_INFINITY 负无穷大,溢出返回该值

POSITIVE_INFINITY 无穷大,溢出返回该值

prototype 原型,用于增加新属性和方法

Number对象的方法

方法 描述

toString() 将数值转化为字符串,并且可以转换进制

toLocaleString() 根据本地数字格式转换为字符串

toFixed() 将数字保留小数点后指定位数并转化为字符串

toExponential()

将数字以指数形式表示,保留小数点后指定位数并转化为

字符串

toPrecision()

指数形式或点形式表述数,保留小数点后面指定位数并转

化为字符串

varbox=1000.789;

alert(box.toString()); //转换为字符串,传参可以转换进制

alert(box.toLocaleString()); //本地形式,1,000.789

alert(box.toFixed(2)); //小数点保留,1000.78

alert(box.toExponential()); //指数形式,传参会保留小数点

alert(box.toPrecision(3)); //指数或点形式,传参保留小数点

四.String类型

String类型包含了三个属性和大量的可用内置方法。

String对象属性

属性 描述

length 返回字符串的字符长度

constructor 返回创建String对象的函数

prototype 通过添加属性和方法扩展字符串定义

String也包含对象的通用方法,比如valueOf()、toLocaleString()和toString()方法,但这

些方法都返回字符串的基本值。

字符方法

方法 描述

charAt(n) 返回指定索引位置的字符

charCodeAt(n) 以Unicode编码形式返回指定索引位置的字符

varbox='Mr.Lee';

alert(box.charAt(1)); //r

alert(box.charCodeAt(1)); //114

alert(box[1]); //r,通过数组方式截取

PS:box[1]在IE浏览器会显示undefined,所以使用时要慎重。

字符串操作方法

方法 描述

concat(str1...str2) 将字符串参数串联到调用该方法的字符串

slice(n,m) 返回字符串n到m之间位置的字符串

substring(n,m) 同上

substr(n,m) 返回字符串n开始的m个字符串

varbox='Mr.Lee';

alert(box.concat('is', ' Teacher', '!')); //Mr.LeeisTeacher!

alert(box.slice(3)); //Lee

alert(box.slice(3,5)); //Le

alert(box.substring(3)); //Lee

alert(box.substring(3,5)); //Le

alert(box.substr(3)); //Lee

alert(box.substr(3,5)); //Lee

varbox='Mr.Lee';

alert(box.slice(-3)); //Lee,6+(-3)=3位开始

alert(box.substring(-3)); //Mr.Lee 负数返回全部

alert(box.substr(-3)); //Lee,6+(-3)=3位开始

varbox='Mr.Lee';

alert(box.slice(3,-1)); //Le6+(-1)=5,(3,5)

alert(box.substring(3,-1)); //Mr. 第二参为负,直接转0,

//并且方法会把较小的数字提前,(0,3)

alert(box.substr(3,-1)); //'' 第二参数为负,直接转0,(3,0)

PS:IE的Javascript实现在处理向substr()方法传递负值的情况下存在问题,它会返回

原始字符串,使用时要切记。

字符串位置方法

方法 描述

indexOf(str,n) 从n开始搜索的第一个str,并将搜索的索引值返回

lastIndexOf(str,n) 从n开始搜索的最后一个str,并将搜索的索引值返回

varbox='Mr.Lee isLee';

alert(box.indexOf('L')); //3

alert(box.indexOf('L',5)); //10

alert(box.lastIndexOf('L')); //10

alert(box.lastIndexOf('L',5)); //3,从指定的位置向前搜索

PS:如果没有找到想要的字符串,则返回-1。

示例:找出全部的L

varbox='Mr.Lee isLee'; //包含两个L的字符串

varboxarr=[]; //存放L位置的数组

varpos=box.indexOf('L'); //先获取第一个L的位置

while(pos>-1){ //如果位置大于-1,说明还存在L

boxarr.push(pos); //添加到数组

pos=box.indexOf('L',pos+1); //从新赋值pos目前的位置

}

alert(boxarr); //输出

大小写转换方法

方法 描述

toLowerCase(str) 将字符串全部转换为小写

toUpperCase(str) 将字符串全部转换为大写

toLocaleLowerCase(str) 将字符串全部转换为小写,并且本地化

toLocaleupperCase(str) 将字符串全部转换为大写,并且本地化

varbox='Mr.Lee isLee';

alert(box.toLowerCase()); //全部小写

alert(box.toUpperCase()); //全部大写

alert(box.toLocaleLowerCase()); //

alert(box.toLocaleUpperCase()); //

PS:只有几种语言(如土耳其语)具有地方特有的大小写本地性,一般来说,是否本

地化效果都是一致的。

字符串的模式匹配方法

方法 描述

match(pattern) 返回pattern中的子串或null

replace(pattern,replacement) 用replacement替换pattern

search(pattern) 返回字符串中pattern开始位置

split(pattern) 返回字符串按指定pattern拆分的数组

正则表达式在字符串中的应用,在前面的章节已经详细探讨过,这里就不再赘述了。

以上中match()、replace()、serach()、split()在普通字符串中也可以使用。

varbox='Mr.Lee isLee';

alert(box.match('L')); //找到L,返回L否则返回null

alert(box.search('L')); //找到L的位置,和indexOf类型

alert(box.replace('L','Q')); //把L替换成Q

alert(box.split('')); //以空格分割成字符串

其他方法

方法 描述

fromCharCode(ascii) 静态方法,输出Ascii码对应值

localeCompare(str1,str2) 比较两个字符串,并返回相应的值

alert(String.fromCharCode(76)); //L,输出Ascii码对应值

localeCompare(str1,str2)方法详解:比较两个字符串并返回以下值中的一个;

1.如果字符串在字母表中应该排在字符串参数之前,则返回一个负数。(多数-1)

2.如果字符串等于字符串参数,则返回0。

3.如果字符串在自附表中应该排在字符串参数之后,则返回一个正数。(多数1)

varbox='Lee';

alert(box.localeCompare('apple')); //1

alert(box.localeCompare('Lee')); //0

alert(box.localeCompare('zoo')); //-1

HTML方法

方法 描述

anchor(name) str

big() str

blink() str

bold() Str

fixed() Str

fontcolor(color) str

fontsize(size) str

link(URL) str

small() str

strike() str

italics() italics

sub() str

sup() str

以上是通过JS生成一个html标签,根据经验,没什么太大用处,做个了解。

varbox='Lee'; //

alert(box.link('http://www.yc60.com')); //超链接



转:https://my.oschina.net/Cheney521/blog/367411



推荐阅读
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • vue使用
    关键词: ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 006_Redis的List数据类型
    1.List类型是一个链表结构的集合,主要功能有push,pop,获取元素等。List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素,List的设 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
author-avatar
笑看斜阳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有