javascript可以使用的对象类型,类,对象,方法,属性怎么区别
这篇文章给大家带来了一些关于javascript的知识,主要介绍了一些关于基本类型的相关问题,像对象,是有属性和方法的,包括基本类型作为对象的使用,基本类型构造函数等。来看看吧,希望对你有帮助。
【相关推荐:javascript视频教程,web前端】
基础类型的“属性方法”
本文将探讨一个极其有趣的概念,即基本类型的属性方法。最近怎么样?你是不是有点傻?慢慢听我说~
前言
在其他面向对象的编程语言中,比如Java和C,属性是对象特有的概念,基本类型是基本类型,所以没有属性方法的概念。
没错,又是JavaScript的一个馊主意。它的引擎允许我们使用属性方法来操作基本类型的数据,就像操作对象一样。
在解释这个奇怪的特性之前,我们需要知道基本类型和对象类型有什么区别。
基本类型JavaScript基本类型的值是多少;JavaScript中有七种基本类型:字符串、数字、布尔、BigInt、符号、空和未定义;对象类型是什么?用{}创建的数据包可以存储多个值。还有其他类型的JavaScript对象,比如函数;涉及到面向对象,引入对象的一个关键特性是封装,可以把各种杂乱的数据和方法存放在一个对象中,降低使用的复杂度。
例如:
让用户={
姓名:小明,
你好(){
Console.log(`你好,我是$ { this . name } `);
} } user . hello();我们将对象用户的属性和方法封装到一个对象中,这样使用起来非常简单。我们只需要使用obj.attr来调用方法或者属性。
但是,这是由于额外的开销(面向对象有额外的开销),这也是面向对象语言C比C慢的原因。
基础类型当作对象使用
面临的问题
当基本类型用作对象时,有两个问题很难协调:
我们希望能够像使用对象一样操作基本类型,比如‘ABC’。toupper case();对象有额外的开销,我们希望保持基本类型简单高效;
解决的方法
JavaScript以一种相当混乱的方式解决了上述问题:
基类型是基类型,提供独立的、个体的值;允许访问字符串的方法和属性;号码;布尔和符号类型;为了保证理论的完整性,在使用基本类型的方法和属性时,先把它们打包成对象,然后再销毁;上述规则意味着基本类型仍然是基本类型。但是,如果我们想要访问基本类型的方法和属性,我们会将基本类型包装到一个对象(对象包装器)中,并在访问完成时销毁它。老实说,这听起来有点可笑。
背后的事件
例如:
let name= Trumpconsole . log(name . toupper case());//访问基础类型的方法。上述代码的执行结果如下:
看起来问题不大,但是事情很多,需要了解以下几点:
Name是字符串基类型,本身没有什么特别的;在访问name属性方法时,会创建一个包含字符串值的特殊对象,它有toUpperCase方法;调用特殊对象的方法toUpperCase会返回一个字符串新;特殊物件用完就销毁;变量本身的值没有改变,如下所示:
妥协的结果
虽然解决方案充满了妥协(烂点子),但结果还是不错的,成绩如下:
基金会保持自身的简单高效;类型通过特殊对象拥有属性和方法;保持理论的完整性,即只有对象才有属性和方法;虽然理论上,事实上,JavaScript引擎高度优化了这个过程,我怀疑它根本没有创建额外的对象。只是口头上说自己遵守规范,好像真的有了临时对象。
常用方法举例
本文简单介绍基本类型方法的概念,不解释各种方法。随着教程的深入,会逐渐涉及到大量的方法。下面是基本类型的一些常用方法和属性。
具有不同属性方法的不同基本类型在以下类别中列出:
String
长度属性,返回字符串长度。
console.log(abc )。长度);上述代码结果如下:
indexOf(ch)方法返回字符串中第一个字符的下标。
console.log(abc )。indexOf( b );console.log(abc )。index of( d );代码执行结果如下:
当字符串中存在该字符时,返回下标(从0开始),如果找不到该字符,则返回-1。
Concat(str)方法,拼接两个字符串
设str1= hello让str2=世界!;console . log(str 1 . concat(str 2));console . log(str 1);console . log(str 2);代码执行结果如下:
replace(str1,str2)方法用str2替换str1。
设str= javascriptconsole.log(str.replace(java , 996 ));console . log(str);代码执行结果如下:
Number
toFixed(num)方法,将小数位舍入到指定的精度。
console . log(9.3333333 . to fixed(3));console . log(9.3333333 . to fixed(0));代码执行结果如下:
ToString()方法,该方法将数字转换为字符串。
3.14 . tostring();//更改为“3.14”console . log((8)。tostring(2));//转换为二进制“1000”console . log((9)。tostring(2));//转换为二进制“1001”console . log((996)。tostring(16));//转换为十六进制字符串“3e4”的代码执行结果如下:
toExponential()方法转换为指数计数方法。
console . log(3.1415926 . toexponential());console . log(3.1415926 . to exponential(2));console . log(3.1415926 . to exponential(3));代码执行结果如下:
后续章节会展示更多的方法,这里就不赘述了。
基础类型构造函数(不推荐使用的特性)
和Java一样,JavaScript可以通过new运算符显式地为基本类型创建一个“对象包装器”。这个做法是极其不推荐,这里提出只是为了知识的完备性。
这种方法存在一些问题,例如:
设num=新数(0);console.log(类型编号);console.log(类型为0);代码执行结果如下:
或者,在判断中会出现混乱:
设零=新数(0);If (zero) {//zero为真,因为它是一个对象
console . log( true );}代码执行结果如下:
同时,我们不要忘记,不带new(关键字)的String/Number/Boolean函数可以将一个值转换成相应的类型:转换成String、Number或Boolean值(原始类型)。
例如:
console.log(数字类型( 123 ));
本文小节
除了null和undefined之外的基本类型提供了很多有用的方法;
JavaScript虽然采用了折中的实现方法,但还是取得了令人满意的效果,以较低的成本实现了基本的类型属性和方法调用。
【相关推荐:javascript视频教程,web前端】以上是JavaScript如何实现基本类型与对象具有相同属性和方法的细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。