JS里面的铠甲合体!
本标题党又回来了,最近在专心研究一些JS基础性的书籍,以期把原理都了解透彻,所以写文章的频率就降了下来。但是今天我必须要来写一下子,为什么呢,因为今天周五!先说明一下JS里面的拆箱与装箱指的是JS封箱和拆箱,已经玩的很六的大佬就不要浪费时间啦,抓紧研究更深的!
引子:

我们来看一下这段简单的代码,可能有的人会问这有啥,不就是新建一个字符串然后调用字符串上的方法嘛,其实这里面还是有点馅的,下面让我们来尝一尝究竟是什么馅料
首先在JS里面字符串是属于基本数据类型的,那为何基本数据类型上会有方法呢,我套你个猴子的,有方法那不是成对象了。
要解释这个问题我们就不得不提JS里面的一种机制,封装对象的包装与拆装,即装箱与拆箱。
装箱:
当我们在基本数据类型上调用方法的时候,JS会默认进行装箱操作。啥叫装箱呢,下面让我来操作一波好吧。
相信在座的各位或多或少都看过铠甲勇士吧,铠甲勇士一般的桥段就是ERP研究室基地发现有小怪兽出现了,会通知铠甲勇士,此时此刻他们大喊一声铠甲合体!就由一个普通人变为了铠甲勇士,什么火焰拳之类的在普通人状态没有的技能统统都来了!

这就跟装箱操作一样一样的嗷,JS引擎就是ERP基地,而基本数据类型的变量就相当于普通人,方法则相当于技能。作为普通人是没有火焰拳技能的,但是穿上铠甲之后不止能调用函数,打十个都行,来评论区上来几个我给你们示范一下子。这个还要注意一下不是啥技能都能放的,只能放对应铠甲的技能,比如你穿个炎龙铠甲放出个风鹰腿来,你以为你谁,导演吗?这和JS原理是一样的,虽说JS会进行装箱操作,但也不会乱装,字符串装成字String对象,数字装成Number对象...

拆箱:
当技能被放了,小怪兽被消灭了完了怎么办呢,当然是取消铠甲合体变回一个普通人咯。JS也这样的,函数也调用完了是吧,调完了就给拆开,把变量重新变回一个基本数据类型的变量。
还有一点需要注意一下,装箱完了使用后会进行拆箱,就跟穿铠甲打完小怪兽装完***后总得解除合体吧,如果一直穿着可就显得有点呆滞了啊!
结语:
好了,今天就先到这里了,上午看到有人说技术文章不应该扯很多废话,个人认为分情况吧,如果多扯几句能记忆更深刻,理解的更透彻,那何乐而不为呢,大家怎么看呢
JS里面的铠甲合体!的更多相关文章
- python-day5(正式学习)
格式化输出 符合某种输出规范的print函数的应用 第一种方式 使用占位符.漫威里有个人叫斯塔克,他平时站在人堆里(print函数引号内的内容)我们看不出来和其他人有什么异常(print的终端显示), ...
- (翻译)Angular.js为什么如此火呢?
在本文中让我们来逐步发掘angular为什么如此火: Angular.js 是一个MV*(Model-View-Whatever,不管是MVC或者MVVM,统归MDV(model Drive View ...
- 【vue.js权威指南】读书笔记(第二章)
[第2章:数据绑定] 何为数据绑定?答曰:数据绑定就是将数据和视图相关联,当数据发生变化的时候,可以自动的来更新视图. 数据绑定的语法主要分为以下几个部分: 文本插值:文本插值可以说是最基本的形式了. ...
- 学习RaphaelJS矢量图形包--Learning Raphael JS Vector Graphics中文翻译(一)
(原文地址:http://www.cnblogs.com/idealer3d/p/LearningRaphaelJSVectorGraphics.html) 前面3篇博文里面,我们讲解了一本叫做< ...
- 2015 前端[JS]工程师必知必会
2015 前端[JS]工程师必知必会 本文摘自:http://zhuanlan.zhihu.com/FrontendMagazine/20002850 ,因为好东东西暂时没看懂,所以暂时保留下来,供以 ...
- [ 学习路线 ] 2015 前端(JS)工程师必知必会 (2)
http://segmentfault.com/a/1190000002678515?utm_source=Weibo&utm_medium=shareLink&utm_campaig ...
- Angular.js为什么如此火呢?
在本文中让我们来逐步发掘angular为什么如此火: Angular.js 是一个MV*(Model-View-Whatever,不管是MVC或者MVVM,统归MDV(model Drive View ...
- JS 学习笔记--5---对象和数组
1.Object类型(引用类型) 不具备多少功能,但是对于在ECMAScript中存储和传递数据确实,确是很理想的选择. 创建方式:(1).使用new Object();方式创建对象,然后对对象进行设 ...
- JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
String对象(*) length属性:获取字符串的字符个数.(无论中文字符还是英文字符都算1个字符.) charAt(index)方法:获取指定索引位置的字符.(索引从0开始) indexOf(‘ ...
随机推荐
- 【LeetCode】55-跳跃游戏
题目描述 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] 输出: ...
- BigDecimal转String
代码: public static void main(String[] args) { // 浮点数的打印 System.out.println(new BigDecimal("10000 ...
- 湘潭大学oj循环1-5
#include <stdio.h>#include <stdlib.h> int main(){ int b,s,n; int a[101]; A:scanf(&q ...
- 新书推荐《再也不踩坑的Kubernetes实战指南》
<再也不踩坑的Kubernetes实战指南>终于出版啦.目前可以在京东.天猫购买,京东自营和当当网预计一个星期左右上架. 本书贴合生产环境经验,解决在初次使用或者是构建集群中的痛点,帮 ...
- windows安装mingw和LuaJIT
1,安装mingw64 先下载mingw64压缩包(不建议下载exe安装包,在线安装太慢),地址如下: https://nchc.dl.sourceforge.net/project/mingw-w6 ...
- Java 中的 syncronized 你真的用对了吗
生活中随处可见并行的例子,并行 顾名思义就是一起进行的意思,同样的程序在某些时候也需要并行来提高效率,在上一篇文章中我们了解了 Java 语言对缓存导致的可见性问题.编译优化导致的顺序性问题的解决方法 ...
- 新建web工程
1.选择新建Dynamic Web Project 2.选择服务器和版本(2.5) 3.WebContend目录下新建一个html文件 4.运行 工程的目录结构: WEB-INF目录时受保护的,不能 ...
- 采用WPF技术,开发OFD电子文档阅读器
前言 OFD是国家标准版式文档格式,于2016年生效.OFD文档国家标准参见<电子文件存储与交换格式版式文档>.既然是国家标准,OFD随后肯定会首先在政务系统使用,并逐步推向社会各个方面. ...
- php 上传word文件 Word文件转 PDF
说一下,之前的时候做上传word文档转pdf的项目时候, 通过安装open office 连接服务组件, 遇到种种问题, 例如上传的word文档版本,, word文档中编辑的样式复杂会出现转pdf失败 ...
- StackOverflow 第四周周报及19年就业情况分析
这是 Stack Overflow 第四周周报,两篇 Java.两篇 Python.公众号「渡码」为日更,欢迎关注.另外,我搜集了今年的就业数据,对招聘情况和岗位情况做了简单总结,想了解的朋友点这里. ...