JavaScript Core -- 包装对象

LoRA学习: SX1276/SX1277/SX1278对比 Lora芯片 SX1276/SX1277/SX1278的比较SX1276/7/8是一种半双工传输的低中频收发器,配备标了标准FSK和远距离扩频Lora调制解调器。该芯片可以用于超长距离的Lora扩频通信,并且抗干扰性强,同时达到低功耗要求。1、芯片关键参数对比: 可以看出SX1276的带宽范围为 7.8~500kHz ,扩频 因子6~12,并覆盖所有可用频段。 SX1277的带宽和频段方位与 S 阅读详情

JavaScript包装对象

JavaScript是面向对象的语言,使用”.”操作符可以访问对象的属性和方法,而对于基本类型(null, undefined, bool, number, string)应该是值类型,没有属性和方法,然而

var s = 'test'; var s1 = s.substr(2);

结果很简单,但是仔细想想还真奇怪,string不是值类型吗!怎么又有属性又有方法的!事实上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而可以让我们调用一些方法。上面的哪行代码实际上是按照下面的代码执行的

var s=new String('test');
var s1=s.substr(2) ;
s=null
引用类型与基本包装类型的主要区别就是对象的生存期。new实例,在执行流离开当前作用域之前保存在内存中;而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间

只要是引用了字符串的属性和方法,JavaScript就会将字符串值通过new String(s)的方式转为内置对象String,一旦引用结束,这个对象就会销毁。所以上面代码在使用的实际上是String对象的length属性和indexOf方法。

同样的道理,数字和布尔值的处理也类似。,null和undefined没有对应对象。既然有对象生成,能不能这样

var s='this is a string';
s.len=10;
alert(s.len);

结果并没有返回10,而是undefined!不是说好了是个对象吗!正如刚才提到第二行代码只是创建了一个临时的String对象,随即销毁,第三行代码又会创建一个新的临时对象(这就是低版本IE频繁处理字符串效率低的一个原因),自然没有len属性。这个创建的临时对象就成为包装对象。没想到一行简单的代码还包含这么多姿势。

内置对象

Boolean

Boolean 对象表示两个值:"true" 或 "false"。当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象。如果作为一个函数(不带有运算符 new)调用时,Boolean() 只将把它的参数转换成一个原始的布尔值,并且返回这个值,如果省略 value 参数,或者设置为 0、-0、null、""、false、undefined 或 NaN,则该对象设置为 false。否则设置为 true(即使 value 参数是字符串 "false")。

Boolean 对象包括 toString 和 valueOf 方法, Boolean 最常用于在 条件语句中 true 或 false 值的简单判断,布尔值和条件语句的组合提供了一种使用 JavaScript 创建逻辑的方式。

Number

Number对象是一个数值包装器,该对象包含几个只读属性

  • MAX_VALUE:1.7976931348623157e+308 //JavaScript能够处理的最大数
  • MIN_VALUE:5e-324 //JavaScript能够处理的最小数
  • NEGATIVE_INFINITY:-Infiny //负无穷
  • POSITIVE_INFINITY:Infinity //正无穷
  • NaN:NaN //非数字

Number 对象还有一些方法,可以用这些方法对数值进行格式化或进行转换

  • toExponential //以指数形式返回 数字的字符串表示
  • toFixed //把Number四舍五入为指定小数位数的数字
  • toPrecision //在对象的值超出指定位数时将其转换为指数计数法
  • toString //返回数字的字符串表示
  • valueOf //继承自object

String

String 对象是文本值的包装器。除了存储文本,String 对象包含一个属性和各种 方法来操作或收集有关文本的信息,String 对象不需要进行实例化便能够使用。

String 对象只有一个只读的length属性用于返回字符串的长度。String对象拥有很多方法

  • charAt;求第i个位置的字符
  • charCodeAt
  • concat
  • fromCharCode
  • indexOf
  • lastIndexOf
  • match
  • replace
  • search
  • slice
  • split
  • substr
  • substring
  • toLowerCase
  • toUpperCase

包装对象

除了上面三个对象,JavaScript还拥有Date、Array、Math等内置对象,这三个经常显示使用,所以非常熟悉,知道了内置对象就可以看看上面例子是怎么回事儿了。

  Math.max(1,10,0);
  Math.min();
  Math.sqrt();//返回Num的平方根
  Math.abs(num);//返回Num的绝对值
  Math.ceil();//向下舍入
  Math.floor();//向上舍入
  Math.round();//四舍五入
  Math.random();//返回一个(0,1)之间的随机数,利用这个方法,返回某个整数范围内的随机数值 = Math.floor(Math.random()* 总数 + 第一个可能的数)
  例如: var num = Math.floor(Math.random()*10+1);//1~10之间的整数

桌面宠物大全 24个桌面宠物.rar 打造完美的桌面从宠物开始……………………………………………… 立即下载

相关推荐

计算机操作系统实验报告,C语言实现银行家算法

C语言实现银行家算法,操作系统实验报告,附带源码与实验截图

07 JS CORE String字符串、内置对象、包装类型

正课: 1. ***String    什么是: ***内置对象: ***包装类型:    字符串API: 1. 什么是: 多个字符组成的只读字符数组(本质上为数组)       vs 数组:        相同:1、都能用下标i访问每个元素/字符                    2、都有length属性记录元素/字符个数                    3、都支持slice()选...

Pony_18的博客 299

web页面 规划布局 草图绘制

主要用于web系统界面的草图快速生成。简介明了,是网页前期布局规划设计的好帮手!

深度解析Reactor.js:Signal信号系统的完整设计与实现指南

Reactor.js是一个**简单而强大的响应式编程库**,它通过Signal信号系统实现了无框架的自动依赖跟踪和数据更新机制。这个轻量级库让开发者能够在不依赖任何框架的情况下,构建响应式的JavaScript应用,是现代前端开发中值得掌握的重要工具。🚀 ## 🔍 Signal信号系统核心概念解析 Reactor.js的核心是Signal信号系统,它由三个关键组件构成: 1. **Sig

gitblog_00740的博客 913

tomcat下部署php所需的配置php环境变量包

tomcat部署php,需要配置php环境变量。将php解压到tomcat的根目录下,将文件夹名字改为php,把php.exe所在的路径加入到path中即可。

用Socket实现基于TCP和UDP的原理探索.pdf

用Socket实现基于TCP和UDP的原理探索.pdf用Socket实现基于TCP和UDP的原理探索.pdf

Webpack的作用(一个基础的打包编译工具在做什么?)

结论: 转换ES6语法成ES5 处理模块加载依赖 生成一个可以在浏览器加载执行的 js 文件 第一个问题,转换语法,其实我们可以通过babel来做。核心步骤也就是: 通过babylon生成AST 通过babel-core将AST重新生成源码 第二步需要处理模块依赖的关系,那就需要得到一个依赖关系视图,babel-traverse提供了一个可以遍历AST...

dglf54292的博客 159

_〖第6章:面向对象(高级)〗java_实例分析:宠物商店笔记

_〖第6章:面向对象(高级)〗_实例分析:宠物商店笔记,提炼编程能力

js 装饰器_js设计模式之 装饰器模式与应用场景

介绍*阅读本文并理解大概需要花费3分钟 *装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。简而言之,就是:为对象添加新功能不改变其原有的结构和功能可以说 装饰器 就是那个环,添加到手机上,...

weixin_39929602的博客 219

drcom客户上网登陆端

当今大学 上网的主要登陆端 是针对win7系统的最新版

c#多线程计算源代码示例

一个多线程计算的小例子 源代码规范,注释清楚 是c#基础学习的好素材

js设计模式之 装饰器模式与应用场景

Decorator的写法与Java里的注解(Annotation)非常类似,但是一定不要把JS中的装饰器叫做是“注解”,因为这两者的原理和实现的功能还是有所区别的,在Java中,注解主要是对某个对象进行标注,然后在运行时或者编译时,可以通过例如反射这样的机制拿到被标注的对象,对其进行一些逻辑包装。而Decorator的原理和作用则更为简单,就是包装对象,然后返回一个新的对象描述(descriptor),其作用也非常单一简单,基本上就是获取包装对象的宿主、键值几个有限的信息。

2501_90243268的博客 940

维宏系统参数资料

系统的参数设置 ,方便大家学习研究。共同学习进步

core-js介绍及安装使用

前言 这里就和大家说一下core-js的开发者,也是网上查阅的资料。 core-js的作者:一位彪悍的俄罗斯程序员,名字叫丹尼斯·普什卡列夫(Denis Pushkarev),平时爱好就是飙摩托车。 并在一次事故中,他以 60 km/h的速度驾驶,结果撞了两个行人,一人现场死亡。根据俄罗斯联邦法律,他被判处有期徒刑 18 个月,剥夺 2 年驾驶权利,另处以罚金 138 万卢布。 详情地址:core-js作者入狱18个月,2600万次周下载的开源项目如何进行下去? - IT之家当负责维护..

程邓楠的博客 8万+

SAP MM新手避坑指南:工厂间调拨用301还是303?手把手教你选对移动类型

本文深入解析SAP MM模块中工厂间调拨的301与303移动类型,帮助新手避开常见陷阱。通过对比一步法(301)和两步法(303+305)的核心差异、适用场景及财务影响,提供清晰的决策框架和实战技巧,确保库存调拨的准确性和效率。

weixin_29223603的博客 346

Rocky Linux 9.0国内yum源一键替换指南(上海交大镜像站实测)

本文详细介绍了如何将Rocky Linux 9.0的yum源替换为上海交大镜像站,以解决国内用户访问官方源速度慢的问题。通过实测验证,上海交大镜像站提供高速下载和稳定更新,并提供了完整的替换步骤、常见问题解决方案及高级优化配置,帮助用户提升软件包下载效率。

weixin_29304985的博客 359

深入解析 core-js:现代 JavaScript 的兼容性基石

深入解析 core-js:现代 JavaScript 的兼容性基石

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 2651

SD-WAN组网案例——数据中心

SD-WAN组网案例——数据中心

2301_78457663的博客 705
上一篇: JavaScript Core -- 继承机制
下一篇: JavaScript Core -- 构造命名空间封装函数
阿懒先生
博客等级 码龄15年 12粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值