• 关于

    JavaScript基本对象

    的搜索结果

回答

我表示毫不犹豫的加入正方我眼中的前端开发人员应该具备这几种基本素质,javascript编程能力(逻辑性),结合javascript框架的编程能力(比如结合jquery),html与css的编写能力。如果缺少了javascript编程能力,那只能被称为美工或设计师。如果缺少了html与css的编写能力,那只能被称为javascript程序员(这种情况比较少)然后再来谈javascript程序员是否是真正的程序员,我认为javascript程序员是真正的程序员,理由如下:1,作为一门弱类型的脚本语言,javascript与perl相似(仅仅是从语言分类角度),如果说perl程序员不是程序员,那么javascript同理可证2,具备什么样的特点才能被称为一门语言呢,我认为首先要有数据类型,然后要有运算符,再然后要有各种语句,再然后要有函数,如果是一门面向对象的语言,还得有面向对象的概念,这些条件javascript都具备3,javascript对比java来看。javascript变量不须类型,java变量必须类型;javascript面向对象是以函数或对象的形式实现,java是以类的形式;javascript在对象的特性上都非常弱,比如继承、作用范围等等,而java非常强等等,两者作为语言来说,有相似的地方总的来说,javascript程序员绝对是百分百的程序员

小旋风柴进 2019-12-02 01:21:58 0 浏览量 回答数 0

回答

1.脚本语言。JavaScript 是一种解释型的脚本语言,C、C++等语言先编译后执行,而 JavaScript 是在程序的运行过程中逐行进行解释。 2.基于对象。JavaScript 是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。 3.简单。JavaScript 语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于 Java 基本语句和控制的脚本语言,其设计简单紧凑。 4.动态性。JavaScript 是一种采用事件驱动的脚本语言,它不需要经过 Web 服务器就可以对用户的输入做出响应。 5.跨平台性。JavaScript 脚本语言不依赖于操作系统,仅需要浏览器的支持。

茶什i 2019-12-02 03:18:10 0 浏览量 回答数 0

回答

对于浏览器引擎而言,并不存在“HTML标签”这回事。其本质是DOM节点对象。也并不存在“HTML文档”这回事,其本质是DOM节点对象组成的文档树。 浏览器引擎才是实际存储和渲染DOM节点对象的“大爷”。只是我们无法直接操作浏览器引擎,所以对这个本质并不熟悉(其实也不需要很熟悉,但是得知道)。 DOM节点对象是唯一的,但操作DOM节点对象的数据,却不止有一种方法。例如对于一个图像的宽度: •HTML可以通过的width属性去定义; •JavaScript可以通过element.width去读取和修改; •别忘了CSS,CSS也可以通过width属性去修改。 HTML属性和JavaScript的DOM对象的属性,本质上都只是影响DOM节点对象数据的众多理由之一。 多个原因影响同一个DOM节点的实质数据(多对一),请务必记住这个本质理由。 详细而言: HTML仅仅是文档树和节点对象的一种描述方法。 •浏览器的解析器部分,根据HTML直接把DOM文档树,交给浏览器引擎。 •用其他的方法,也可以描述DOM对象,例如JSX。(当然用其他方法描述DOM对象的时候,生成DOM文档树的过程,肯定会发生相应的修改) JavaScript中的DOM对象,仅仅是一种操作浏览器引擎中DOM对象的接口。 •JavaScript中的DOM对象,和浏览器引擎中存储的DOM节点,本质上不是一个东西。 •用户实际上仅仅有权操作JavaScript中提供的DOM对象。 •JS引擎和浏览器引擎协作,确保了JavaScript的DOM对象,是引擎中DOM节点的一个原样映射。 •这样用户就能通过操作JavaScript的DOM对象,透明的修改引擎中存储的DOM节点。 •而浏览器引擎在本质上,仅仅负责在DOM树更新时承担重新渲染,实际上并不关心JS的存在。 •你如果用其他办法修改了引擎使用的DOM树,也能更新文档结构。(当然这种办法基本上不存在…) 至于HTML属性名和JavaScript DOM对象的属性名大多相似或等同,这仅仅是人为的方便。我如果喜欢我也可以设计成这样嘛: // <img src="http://localhost/1.png" alt="alt text" width=640 height=480 /> node.DataSource = "http://localhost/1.png"; node.AlternativeText = "alt text"; node.Dimension.Width = 640; node.Dimension.Height = 480; 虽然这样就真的没法记了。 JavaScript DOM对象属性名和HTML属性名的近似,是JavaScript给Web开发者的恩惠。选择只记忆HTML属性名,然后记忆(或者是踩坑了再反查)JavaScript属性名中少量和HTML不同名的差异点,这是很自然的。

杨冬芳 2019-12-02 02:54:12 0 浏览量 回答数 0

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

学生动手场景应用,快速了解并掌握云服务器的各种新奇玩法!

回答

1、脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。 2、基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。 3、简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。 4、动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。 5、跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。

茶什i 2019-12-20 17:00:15 0 浏览量 回答数 0

问题

javascript和html5中有没有什么线程安全的对象?

小旋风柴进 2019-12-01 19:37:49 923 浏览量 回答数 1

回答

如何实现 JavaScript RPC 应用 一、一个 JavaScript RPC 的实现 1、RPC工作流程 JavaScript RPC 的简单实现过程是: 在客户端JavaScript脚本中,将要调用的服务端PHP函数名和函数参数(本地的JavaScript变量值)作为要传输的数据,通过Ajax传输到服务端,同时,Ajax设置一个回调函数,以便使用服务端函数的返回结果。在服务端PHP脚本中,接收Ajax传输的数据,从中取出要执行的函数名和函数参数。然后执行指定的函数,并将执行函数的返回值作为传输的数据,直接输出到浏览器,以此作为响应AJax的请求。客户端的Ajax在接受服务端的响应后,把返回的数据传递给AJax的回调函数。到此完成了一个RPC的流程。 2、传输的数据 在RPC执行过程中,客户端与服务端需要相互传输数据,我们分别称之为客户端数据和服务端数据。对此的说明如下表: 客户端数据: 函数名:服务端PHP脚本中存在的函数。 函数参数:客户端JavaScript脚本中的变量值。 服务端数据: 函数返回值:执行服务端PHP函数的返回值。 3、序列化与反序列化 为了要传输客户端的变量值和服务端的函数返回值,需要对其进行序列化处理。与之相对应的在传输后还要进行反序列化处理。 JavaScript中的变量的类型:基本类型和JSON类型(普通数组、元对象) PHP中的变量类型:基本类型和数组(普通数组和关联索引数组) PHP语言具有序列化和反序列化函数,而JavaScript语言中没有,因此我们要自己实现它。 由于我们进行JavaScript和PHP之间的数据交换,所以直接把JavaScript变量序列化为PHP的序列化形式。我们实现Js2PhpSerialize函数来完成这个任务。 Js2PhpSerialize:主要是把JSON对象及嵌套调用的JSON对象和基本类型的数据表示为PHP的序列化形式。 服务端的PHP在执行函数后,把结果序列化为JavaScript能理解的形式,以便于eval动态生成变量。我们实现php2JsSerialize函数来完成这个任务。 4、功能实现 我们创建两个类来完成上述功能。一个是客户端的JavaScript类,一个是服务端的PHP类。 文件名:jsrpc.class.js 要实现的功能: A、序列化JavaScript的数据。 B、Ajax传输序列化数据 C、反序列化JavaScript数据。 D、设置回调函数。 文件名:jsrpc.class.php 要实现的功能: A、响应Ajax请求,接收序列化数据。 B、反序列化PHP数据,基本类型和数组。 C、序列化PHP数据为JavaScript数据。 将JavaScript的数据类型转换为PHP可以理解的形式,通过Ajax把转换后的数据传递到服务端,由PHP的eval函数解析为PHP的数据类型。 PHP函数执行后,将执行结果数据转换为JavaScript可以理解的形式,由Ajax的回调函数响应,并由JavaScript的eval函数解析为JavaScript的数据类型。 二、应用示例 代码片段: JavaScript端: <SCRIPT language=javascript src="jsrpc.class.js"></SCRIPT> <SCRIPT language=javascript> var arr = new Array(1,'abc', new Array(3,'xyz'),5); var rpc = new JsRPC(); rpc.call('ajax_server.php', 'checkBook', response, arr); function response(result) { alert(result[1]); } </SCRIPT> PHP端(即文件ajax_server.php): <?php require_once('jsrpc.class.php'); $ar = new JsRPC(); $ar->register('checkBook'); $ar->start(); function checkBook($param) { return $param; } ?> 如上所示,它使用方法与一个叫CPaint的类库相似,只是省去了将数据装到一个对象中的步骤。 三、获取源码 “答案来源于网络,供您参考”

牧明 2019-12-02 02:15:31 0 浏览量 回答数 0

问题

关于javascript的面向对象的问题:报错

kun坤 2020-06-07 16:55:53 0 浏览量 回答数 1

回答

JavaScript (ECMAScript) :JavaScript 是脚本语言。JavaScript和ECMAScript通常被人用来表达相同的含义,但是JavaScript并不是这么一点含义,它是由ECMAScript 核心. DOM 文档对象模型. BOM 浏览器对象模型 这三部分组成。浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译。 组成部分包括语法,类型,语句,关键字,保留字,操作符,对象。 其中,文档对象模型(DOM , Document Object Model)是针对XML但是经过拓展用于HTML的应用程序编程接口。DOM把整个页面映射为一个多层节点结构,开发人员借助DOM Api对节点进行操作。可以通过浏览器F12进入开发者模式,查看层级关系。当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被构造为对象的树。通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。 功能大致上: · JavaScript 能够改变页面中的所有 HTML 元素 · JavaScript 能够改变页面中的所有 HTML 属性 · JavaScript 能够改变页面中的所有 CSS 样式 · JavaScript 能够对页面中的所有事件做出反应 同时,浏览器对象模型(Browser Object Model)使用BOM控制浏览器显示页面意外的部分。 javaScript脚本加载方式 1 通过在网页中加入标记JavaScript的开始和结束,将JavaScript代码放到之间 2 也可以引入一个外部的JavaScript文件,这个JavaScript文件一般以.js作为扩展名 3 原则上,放在之间。但视情况可以放在网页的任何部分 4 一个页面可以有几个,不同部分的方法和变量,可以共享。 javaScript语句开发 (1)对大小写敏感 (2)自动忽略多余的空格 (3)在文本字符串中使用反斜杠对代码行进行换行 (4)单行注释(//)多行注释(/* */) JavaScript 是一个程序语言。语法规则定义了语言结构。 JavaScript 字面量 在编程语言中,一般固定值称为字面量,如 3.14。 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。 字符串(String)字面量 可以使用单引号或双引号: 数组(Array)字面量 定义一个数组: [40, 100, 1, 5, 25, 10] 对象(Object)字面量 定义一个对象: {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"} 函数(Function)字面量 定义一个函数: function myFunction(a, b) { return a * b;} **JavaScript 变量 ** 在编程语言中,变量用于存储数据值。 JavaScript 使用关键字 var 来定义变量, 使用等号来为变量赋值: var x, length x = 5 length = 6 JavaScript 操作符 JavaScript使用 算术运算符 来计算值: (5 + 6) * 10 JavaScript使用赋值运算符给变量赋值: x = 5 y = 6 z = (x + y) * 10 JavaScript语言有多种类型的运算符: JavaScript 语句 在 HTML 中,JavaScript 语句向浏览器发出的命令。 语句是用分号分隔: x = 5 + 6; y = x * 10; JavaScript 关键字 JavaScript 关键字用于标识要执行的操作。 和其他任何编程语言一样,JavaScript 保留了一些关键字为自己所用。 var 关键字告诉浏览器创建一个新的变量: var x = 5 + 6; var y = x * 10; JavaScript 同样保留了一些关键字,这些关键字在当前的语言版本中并没有使用,但在以后 JavaScript 扩展中会用到。 以下是 JavaScript 中最重要的保留字(按字母顺序): JavaScript 注释 不是所有的 JavaScript 语句都是"命令"。双斜杠 // 后的内容将会被浏览器忽略: // 我不会执行 JavaScript 数据类型 JavaScript 有多种数据类型:数字,字符串,数组,对象等等: var length = 16; // Number 通过数字字面量赋值 var points = x * 10; // Number 通过表达式字面量赋值 var lastName = "Johnson"; // String 通过字符串字面量赋值 var cars = ["Saab", "Volvo", "BMW"]; // Array 通过数组字面量赋值 var person = {firstName:"John", lastName:"Doe"}; // Object 通过对象字面量赋值 数据类型的概念 编程语言中,数据类型是一个非常重要的内容。 为了可以操作变量,了解数据类型的概念非常重要。 如果没有使用数据类型,以下实例将无法执行: 16 + "Volvo" 16 加上 "Volvo" 是如何计算呢? 以上会产生一个错误还是输出以下结果呢? "16Volvo" 你可以在浏览器尝试执行以上代码查看效果。 在接下来的章节中你将学到更多关于数据类型的知识。 JavaScript 函数 JavaScript 语句可以写在函数内,函数可以重复引用: 引用一个函数 = 调用函数(执行函数内的语句)。 function myFunction(a, b) { return a * b; // 返回 a 乘以 b 的结果 } JavaScript 字母大小写 JavaScript 对大小写是敏感的。 当编写 JavaScript 语句时,请留意是否关闭大小写切换键。 函数 getElementById 与 getElementbyID 是不同的。 同样,变量 myVariable 与 MyVariable 也是不同的。 JavaScript 字符集 JavaScript 使用 Unicode 字符集。 Unicode 覆盖了所有的字符,包含标点等字符。 三 推荐学习网站 JS具体的语法内容还有很多,可以参考官方API或者学习网站完成掌握,简单易学,推荐网站 菜鸟教程:https://www.runoob.com/js/js-tutorial.html w3cschool:https://www.w3school.com.cn/js/index.asp 四 推荐学习书籍 引用自 https://www.cnblogs.com/xhqq/p/7561384.html 个人觉得不错的,没事可以翻翻的。书籍如下: 《javascript设计模式》,张容铭写的,可能不太适合零基础的,是非常不错的进阶书籍。 《javascript面向对象编程指南》,风格轻松易懂,比较适合初学者,原型那块儿讲得透彻,12种继承方式呢。 《js权威指南》、《js高级程序设计》,这两本书经典是经典,但是太厚,适合把其中任意一章都当成一本书来读。洋洋洒洒,很难一口气看完。比较适合当做参考书。 《你不知道的javascript》狙击js核心细节,闭包、原型、this讲得都还清楚。 《js设计模式与开发实践》js设计模式也是要学的,此书把js的设计模式讲得非常清晰,一点不晦涩,看起来没多少难度。 《正则指引》,分析源码时,如果正则表达式不懂,没法进行下去的。此书相对来说讲得比较清晰。 《基于MVC的JavaScript Web富应用开发》,看完后,基本能写出自己的mvc框架了。是本好书。 《javascript函数式编程》,js是一门函数式语言,此书是函数式编程一个入门,函数是一等公民那是非常重要的。 《js忍者秘籍》,jq作者写的,没有传说中的那么难读,话说就算你看完并理解所有知识点,也不会达到世界高手级别的。因为你还没有做到随心所欲。 《javascript框架设计》,如果初看此书,会觉得此书有罗列代码之嫌。在我看来,此书讲究的是框架的全局观。以上书籍是我认为是成就高手之路上必须看的,也需要反复看。 css相关的书籍,说实话我看得比较少,总共有六七本吧。有两本必须推荐一下: 《css权威指南》,css基础知识点那是讲得非常清楚的。什么层叠优先级、line-height啥的。不是随便一本书都敢叫“权威指南”的。 《css揭秘》,此书我也是不断的看,此书才不屑于全面讲css3各属性呢。css规范文档能讲的,它只会讲你最不在意的。此书解决的47问题,解决思路和解决方案同等重要,很有启发性。以上各书你都可以不买,至少买本此书吧

问问小秘 2020-03-03 09:32:57 0 浏览量 回答数 0

回答

JavaScript 中的变量为松散类型,所谓松散类型就是指当一个变量被申明出来就可以保存任意类型的值,就是不像 SQL 一样申明某个键值为 int 就只能保存整型数值,申明 varchar 只能保存字符串。一个变量所保存值的类型也可以改变,这在 JavaScript 中是完全有效的,只是不推荐。相比较于将变量理解为“盒子“,《JavaScript 编程精解》中提到应该将变量理解为“触手”,它不保存值,而是抓取值。这一点在当变量保存引用类型值时更加明显。 JavaScript 中变量可能包含两种不同的数据类型的值:基本类型和引用类型。基本类型是指简单的数据段,而引用类型指那些可能包含多个值的对象。

茶什i 2019-12-02 03:19:55 0 浏览量 回答数 0

回答

对象的[[class]]属性 所有typeof返回值为“object”的对象(如数组)都包含一个内部属性[[class]],这个属性无法直接访问,一般通过Object.prototype.toString(..)来查看。 console.log(Object.prototype.toString.call([1,2,3])); //[object Array] console.log(Object.prototype.toString.call(/\d/)); //[object RegExp] 多数情况下,对象的内部[[class]]属性和创建该对象的内建原生构造函数相对应,不过也不总是这样。 2.基本类型值的[[class]]属性 虽然Null()和Undefined()这样的原生构造函数并不存在,但是内部[[class]]属性仍然是“Null”和“Undefined”。 console.log(Object.prototype.toString.call(null)); //[object Null] console.log(Object.prototype.toString.call(undefined)); //[object Undefined] 其他基本类型值的情况有所不同: console.log(Object.prototype.toString.call("abc")); //[object String] console.log(Object.prototype.toString.call(42)); //[object Number] console.log(Object.prototype.toString.call(true)); //[object Boolean] 基本类型值被各自的封装对象自动包装,所以他们的内部[[class]]属性分别为“String”,“Number”和“Boolean”。 3.封装对象 由于基本类型值没有.length和.toString()这样的属性和方法,需要通过封装对象才能访问,此时Javascript引擎会自动为基本类型值包装一个封装对象。 //封装对象包装 var b = 'abc'; console.log(b.length); console.log(b.toUpperCase()); 一般不直接使用封装对象(即通过new操作创建基本类型值),优先考虑使用“abc”和“42”这样的基本类型值,而不是new String("abc") 和 new Number(42)。 4.拆封 如果想要得到封装对象中的基本类型值,可以使用valueOf()函数。 复制代码 //封装对象的拆封 var s = new String( "abc" ); var n = new Number( 42 ); var b = new Boolean( true ); console.log(s.valueOf()); console.log(n.valueOf()); console.log(b.valueOf()); 复制代码

景凌凯 2020-04-03 22:29:47 0 浏览量 回答数 0

回答

javascript引用类型的值是一个实例或者说对象,它是通过new + 构造函数创建。常见的引用类型包括Object、Array、Function、String、Number、Boolean、Date等。在创建实例时我们都可以使用如下方式var obj = new Object(); var arr = new Array(); //甚至 var fn = new Function('val', 'return val');但有更简洁,并且更友好的方式来创建这些类型的实例叫字面量表示法如下var obj = {}; var arr = []; var fn = functon (val) { return val; }同时String、Number、Boolean属于特殊的引用类型,我们叫它基本包装类型。我们平时都是使用字面量来表示它们而很少用new方式:var str = ''; var num = 0; var boo = false;但是我们为什么可以使用类似str.slice()呢? 要知道要是一个对象实例才有其对应的方法。var str = 'text';var subStr = str.substring(2);/*原因在于在第二行代码访问时,访问过程处于一种读取模式,后台会自动完成以下处理。1.创建String对象实例2.实例中调用指定方法3.销毁这个实例*/var str = new String('text');var subStr = str .substring(2);str = null;引用类型与基本包装类型主要区别在于对象的生存期,使用new创建的对象会在执行流离开当前作用域之前一直保存在内存中,而自动创建的基本包装类型对象只存在于一行代码的执行瞬间,然后立即被销毁。

杨冬芳 2019-12-02 02:56:01 0 浏览量 回答数 0

问题

javascript中基本类型和引用类型的关系是什么?

云栖技术 2019-12-01 19:39:26 963 浏览量 回答数 1

问题

【精品问答】前端开发必懂之JS技术二百问

茶什i 2019-12-01 22:05:04 146 浏览量 回答数 0

问题

如何在JavaScript中的多维对象/数组中查找值?

保持可爱mmm 2020-02-08 14:22:40 0 浏览量 回答数 1

回答

你得到的是 JavaScript 的基本数据类型的对象,可以通过字面的语法直接访问内部的值比如 obj = { k: 'value' },可以通过 obj.k 或者 obj['k'] 两种语法得到 'value',嵌套也是类似的

落地花开啦 2019-12-02 01:52:31 0 浏览量 回答数 0

问题

Java 8 Lambda限制:报错

kun坤 2020-06-08 11:12:26 4 浏览量 回答数 1

回答

Ajax 全称是 asychronous javascript and xml,可以说是已有技术的组合,主要用来实现客户端与服务器端的异步交互,实现页面的局部刷新。 基本步骤 4 步走:(创建对象、建立连接、发送数据、接收数据)

茶什i 2019-12-02 03:21:40 0 浏览量 回答数 0

回答

如果不看答案,你回答真确了的话,那么说明你对 javascript 的数据类型了解的还是比较清楚了。js 中有两种数据类型,分别是:基本数据类型和引用数据类型(object Array)。对于保存基本类型值的变量,变量是按值访问的,因为我们操作的是变量实际保存的值。对于保存引用类型值的变量,变量是按引用访问的,我们操作的是变量值所引用(指向)的对象。答案就清楚了: CSSer;

kun坤 2019-12-02 03:23:07 0 浏览量 回答数 0

回答

在JavaScript范围内的基本层次上,对象的属性是更为复杂的实体。您可以使用setters / getters创建具有不同可枚举性,可写性和可配置性的属性。数组中的项目无法通过这种方式进行自定义:它存在或不存在。在底层引擎级别,这可以在组织表示结构的内存方面进行更多优化。 在从对象(字典)中识别数组方面,JS引擎始终在两者之间做出明确的区分。这就是为什么有很多文章尝试创建类似半伪数组的对象的方法,这些对象的行为类似于一个但允许其他功能。甚至存在这种分离的原因是因为JS引擎本身将两者存储的方式不同。 属性可以存储在数组对象上,但这仅说明了JavaScript如何坚持将所有内容制作为对象。数组中的索引值与您决定在代表基础数组数据的数组对象上设置的所有属性的存储方式不同。 每当您使用合法的数组对象并使用处理该数组的标准方法之一时,您都将访问基础数组数据。特别是在V8中,这些基本上与C ++数组相同,因此将应用这些规则。如果由于某种原因您正在使用一个引擎无法确定其是否为数组的数组,那么您将处于更加不稳定的境地。在最新版本的V8中,还有更多的工作空间。例如,可以创建一个以Array.prototype作为原型的类,并且仍然可以有效地访问各种本机数组操作方法。但这是最近的变化。 指向最近对数组操作所做的更改的特定链接可能会派上用场: http://code.google.com/p/v8/source/detail?r=10024 http://code.google.com/p/v8/source/detail?r=9849 http://code.google.com/p/v8/source/detail?r=9747 另外,这里是直接从V8来源获取的Array Pop和Array Push,它们均在JS本身中实现: function ArrayPop() { if (IS_NULL_OR_UNDEFINED(this) && !IS_UNDETECTABLE(this)) { throw MakeTypeError("called_on_null_or_undefined", ["Array.prototype.pop"]); } var n = TO_UINT32(this.length); if (n == 0) { this.length = n; return; } n--; var value = this[n]; this.length = n; delete this[n]; return value; } function ArrayPush() { if (IS_NULL_OR_UNDEFINED(this) && !IS_UNDETECTABLE(this)) { throw MakeTypeError("called_on_null_or_undefined", ["Array.prototype.push"]); } var n = TO_UINT32(this.length); var m = %_ArgumentsLength(); for (var i = 0; i < m; i++) { this[i+n] = %_Arguments(i); } this.length = n + m; return this.length; }

保持可爱mmm 2020-02-08 11:02:22 0 浏览量 回答数 0

回答

Snowflake is a service used to generate unique IDs for objects within Twitter (Tweets, Direct Messages, Users, Collections, Lists etc.). These IDs are unique 64-bit unsigned integers, which are based on time, instead of being sequential. The full ID is composed of a timestamp, a worker number, and a sequence number. When consuming the API using JSON, it is important to always use the field id_str instead of id. This is due to the way Javascript and other languages that consume JSON evaluate large integers. If you come across a scenario where it doesn’t appear that id and id_str match, it’s due to your environment having already parsed the id integer, munging the number in the process. —— developer.twitter.com Snowflake(雪花) 是一项服务,用于为 Twitter 内的对象(推文,直接消息,用户,集合,列表等)生成唯一的 ID。这些 IDs 是唯一的 64 位无符号整数,它们基于时间,而不是顺序的。完整的 ID 由时间戳,工作机器编号和序列号组成。当在 API 中使用 JSON 数据格式时,请务必始终使用 id_str 字段而不是 id,这一点很重要。这是由于处理JSON 的 Javascript 和其他语言计算大整数的方式造成的。如果你遇到 id 和 id_str 似乎不匹配的情况,这是因为你的环境已经解析了 id 整数,并在处理的过程中仔细分析了这个数字。 在 JavaScript 中,Number 基本类型可以精确表示的最大整数是 2^53。因此如果直接使用 Number 来表示 64 位的 Snowflake ID 肯定是行不通的。所以 Twitter 工程师们让我们务必使用 id_str 字段即通过字符串来表示生成的 ID。当然这个问题不仅仅存在于使用 Snowflake ID 的场景,为了解决 JavaScript 不能安全存储和操作大整数的问题,BigInt 这个救星出现了,它是一种内置对象,可以表示大于 2^53 的整数,甚至是任意大的整数。 BigInt 现在处在 ECMAScript 标准化过程中的 第三阶段 。 当它进入第四阶段草案,也就是最终标准时, BigInt 将成为 Javacript 中的第二种内置数值类型。 BigInt 可能会成为自 ES2015 引入 Symbol 之后,增加的第一个新的内置类型。

kun坤 2020-04-24 10:40:34 0 浏览量 回答数 0

问题

表格存储能提供哪几种数据类型

云栖大讲堂 2019-12-01 21:02:12 1190 浏览量 回答数 0

回答

回顾2009年到如今,区块链技术的火热程度是逐年增加。各大行业巨头也在疯狂布局,势必要上演一场"群雄逐鹿"的商业大战。那这场好戏什么时候上演?有人说就在最近这两三年,还有人甚至说就在今年,2018年区块链将会出现井喷。当然,我们现在还无法做出准确的判断,但是我们可以先做好充足的准备。那么,问题又来了,区块链技术到底要怎么去弄?要用到哪些开发语言?在现在看来,这也许是很多从事区块链程序员的心声。下面整理了四种区块链技术比较主要的开发言语,希望对大家有所帮助。 JAVA开发语言(未来币) 定义:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 .Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。 C++开发语言(比特币、公正通、瑞波ripple) 定义:C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 GO开发语言(以太坊、IBM) 定义:Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点: 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对象语言更轻量级。Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。 Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。 Solidity开发语言(以太坊) 定义:Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上。它的语法接近于Javascript,是一种面向对象的语言。但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同。 特别说明:以太坊具有四种专用语言:Serpent(Python启发),Solidity(javaScript启发),Mutan(GO启发)和LLL(Lisp启发),都是为面向合约编程而从底层开始设计的语言。Solidity是以太坊的首选语言,正处于紧张开发中,它内置了Serpent的所有特性,但是语法类似于JavaScript,JavaScript是web开发的常用语言。

问问小秘 2019-12-02 03:07:11 0 浏览量 回答数 0

回答

1 js 的基本数据类型? 2 JavaScript 有几种类型的值? 3 什么是堆?什么是栈?它们之间有什么区别和联系? 4 内部属性 [Class] 是什么? 5 介绍 js 有哪些内置对象? 6 undefined 与 undeclared 的区别? 7 null 和 undefined 的区别? 8 如何获取安全的 undefined 值? 9 说几条写 JavaScript 的基本规范? 10 JavaScript 原型,原型链? 有什么特点? 11 js 获取原型的方法? 12 在 js 中不同进制数字的表示方式? 13 js 中整数的安全范围是多少? 14 typeof NaN 的结果是什么? 15 isNaN 和 Number.isNaN 函数的区别? 16 Array 构造函数只有一个参数值时的表现? 17 其他值到字符串的转换规则? 18 其他值到数字值的转换规则? 19 其他值到布尔类型的值的转换规则? 20 {} 和 [] 的 valueOf 和 toString 的结果是什么? 21 什么是假值对象? 22 ~ 操作符的作用? 23 解析字符串中的数字和将字符串强制类型转换为数字的返回结果都是数字,它们之间的区别是什么? 24 + 操作符什么时候用于字符串的拼接? 25 什么情况下会发生布尔值的隐式强制类型转换? 26 || 和 && 操作符的返回值? 27 Symbol 值的强制类型转换? 28 == 操作符的强制类型转换规则? 29 如何将字符串转化为数字,例如 '12.3b'? 30 如何将浮点数点左边的数每三位添加一个逗号,如 12000000.11 转化为『12,000,000.11』? 31 常用正则表达式? 32 生成随机数的各种方法? 33 如何实现数组的随机排序? 34 javascript 创建对象的几种方式? 35 JavaScript 继承的几种实现方式? 36 寄生式组合继承的实现? 37 Javascript 的作用域链? 38 谈谈 This 对象的理解。 39 eval 是做什么的? 40 什么是 DOM 和 BOM? 41 写一个通用的事件侦听器函数。 42 事件是什么?IE 与火狐的事件机制有什么区别? 如何阻止冒泡? 43 三种事件模型是什么? 44 事件委托是什么? 45 ['1', '2', '3'].map(parseInt) 答案是多少? 46 什么是闭包,为什么要用它? 47 javascript 代码中的 'use strict'; 是什么意思 ? 使用它区别是什么? 48 如何判断一个对象是否属于某个类? 49 instanceof 的作用? 50 new 操作符具体干了什么呢?如何实现? 51 Javascript 中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是? 52 对于 JSON 的了解? 53 [].forEach.call($$(''),function(a){a.style.outline='1px solid #'+(~~(Math.random()(1<<24))).toString(16)}) 能解释一下这段代码的意思吗? 54 js 延迟加载的方式有哪些? 55 Ajax 是什么? 如何创建一个 Ajax? 56 谈一谈浏览器的缓存机制? 57 Ajax 解决浏览器缓存问题? 58 同步和异步的区别? 59 什么是浏览器的同源政策? 60 如何解决跨域问题? 61 服务器代理转发时,该如何处理 cookie? 62 简单谈一下 cookie ? 63 模块化开发怎么做? 64 js 的几种模块规范? 65 AMD 和 CMD 规范的区别? 66 ES6 模块与 CommonJS 模块、AMD、CMD 的差异。 67 requireJS 的核心原理是什么?(如何动态加载的?如何避免多次加载的?如何 缓存的?) 68 JS 模块加载器的轮子怎么造,也就是如何实现一个模块加载器? 69 ECMAScript6 怎么写 class,为什么会出现 class 这种东西? 70 documen.write 和 innerHTML 的区别? 71 DOM 操作——怎样添加、移除、移动、复制、创建和查找节点? 72 innerHTML 与 outerHTML 的区别? 73 .call() 和 .apply() 的区别? 74 JavaScript 类数组对象的定义? 75 数组和对象有哪些原生方法,列举一下? 76 数组的 fill 方法? 77 [,,,] 的长度? 78 JavaScript 中的作用域与变量声明提升? 79 如何编写高性能的 Javascript ? 80 简单介绍一下 V8 引擎的垃圾回收机制 81 哪些操作会造成内存泄漏? 82 需求:实现一个页面操作不会整页刷新的网站,并且能在浏览器前进、后退时正确响应。给出你的技术实现方案? 83 如何判断当前脚本运行在浏览器还是 node 环境中?(阿里) 84 把 script 标签放在页面的最底部的 body 封闭之前和封闭之后有什么区别?浏览器会如何解析它们? 85 移动端的点击事件的有延迟,时间是多久,为什么会有? 怎么解决这个延时? 86 什么是“前端路由”?什么时候适合使用“前端路由”?“前端路由”有哪些优点和缺点? 87 如何测试前端代码么? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)? 88 检测浏览器版本版本有哪些方式? 89 什么是 Polyfill ? 90 使用 JS 实现获取文件扩展名? 91 介绍一下 js 的节流与防抖? 92 Object.is() 与原来的比较操作符 '==='、'==' 的区别? 93 escape,encodeURI,encodeURIComponent 有什么区别? 94 Unicode 和 UTF-8 之间的关系? 95 js 的事件循环是什么? 96 js 中的深浅拷贝实现? 97 手写 call、apply 及 bind 函数 98 函数柯里化的实现 99 99. 为什么 0.1 + 0.2 != 0.3?如何解决这个问题? 100 原码、反码和补码的介绍 101 toPrecision 和 toFixed 和 Math.round 的区别? 102 什么是 XSS 攻击?如何防范 XSS 攻击? 103 什么是 CSP? 104 什么是 CSRF 攻击?如何防范 CSRF 攻击? 105 什么是 Samesite Cookie 属性? 106 什么是点击劫持?如何防范点击劫持? 107 SQL 注入攻击? 108 什么是 MVVM?比之 MVC 有什么区别?什么又是 MVP ? 109 vue 双向数据绑定原理? 110 Object.defineProperty 介绍? 111 使用 Object.defineProperty() 来进行数据劫持有什么缺点? 112 什么是 Virtual DOM?为什么 Virtual DOM 比原生 DOM 快? 113 如何比较两个 DOM 树的差异? 114 什么是 requestAnimationFrame ? 115 谈谈你对 webpack 的看法 116 offsetWidth/offsetHeight,clientWidth/clientHeight 与 scrollWidth/scrollHeight 的区别? 117 谈一谈你理解的函数式编程? 118 异步编程的实现方式? 119 Js 动画与 CSS 动画区别及相应实现 120 get 请求传参长度的误区 121 URL 和 URI 的区别? 122 get 和 post 请求在缓存方面的区别 123 图片的懒加载和预加载 124 mouseover 和 mouseenter 的区别? 125 js 拖拽功能的实现 126 为什么使用 setTimeout 实现 setInterval?怎么模拟? 127 let 和 const 的注意点? 128 什么是 rest 参数? 129 什么是尾调用,使用尾调用有什么好处? 130 Symbol 类型的注意点? 131 Set 和 WeakSet 结构? 132 Map 和 WeakMap 结构? 133 什么是 Proxy ? 134 Reflect 对象创建目的? 135 require 模块引入的查找方式? 136 什么是 Promise 对象,什么是 Promises/A+ 规范? 137 手写一个 Promise 138 如何检测浏览器所支持的最小字体大小? 139 怎么做 JS 代码 Error 统计? 140 单例模式模式是什么? 141 策略模式是什么? 142 代理模式是什么? 143 中介者模式是什么? 144 适配器模式是什么? 145 观察者模式和发布订阅模式有什么不同? 146 Vue 的生命周期是什么? 147 Vue 的各个生命阶段是什么? 148 Vue 组件间的参数传递方式? 149 computed 和 watch 的差异? 150 vue-router 中的导航钩子函数 151 两个router 的区别? 152 vue 常用的修饰符? 153 computed 和 watch 区别? 154 keep-alive 组件有什么作用? 155 vue 中 mixin 和 mixins 区别? 156 开发中常用的几种 Content-Type ? 157 如何封装一个 javascript 的类型判断函数? 158 如何判断一个对象是否为空对象? 159 使用闭包实现每隔一秒打印 1,2,3,4 160 手写一个 jsonp 161 手写一个观察者模式? 162 EventEmitter 实现 163 一道常被人轻视的前端 JS 面试题 164 如何确定页面的可用性时间,什么是 Performance API? 165 js 中的命名规则 166 js 语句末尾分号是否可以省略? 167 Object.assign() 168 Math.ceil 和 Math.floor 169 js for 循环注意点 170 一个列表,假设有 100000 个数据,这个该怎么办? 171 js 中倒计时的纠偏实现? 172 进程间通信的方式? 173 如何查找一篇英文文章中出现频率最高的单词? 174 174道 JavaScript 面试题,合集

剑曼红尘 2020-04-02 14:05:35 0 浏览量 回答数 0

回答

技巧: 《程序员面试宝典》这本书有Java、C++等各种版本,主要介绍笔试面试常考的题,有些知识点真的很细,非常值得看。 数据结构和算法: 《编程之美》里面的编程题经常考到,有些可能比较难。 《剑指offer》这个是强烈推荐的,掌握解决问题的思路很重要。比如以空间换时间、动态规划等。 《数据结构》这个不用多说,链表、树、图是经常考到的。 《算法导论》有精力的话,可以选择性的看一看。 《编程珠玑》 语言: 《深入浅出MFC》 《深度探索C++对象模型》介绍C++面向对象中的构造函数、虚函数等,看完之后能理解程序的运行结果了。 《C++ Primer》大量C++的基础,不过基础不太好的同学建议看谭浩强的《C++程序设计》。 《Effective C++》 《Java编程思想》 《大象Thinking in UML》 《JavaScript 权威指南》 《C++标准程序库》 《STL源码剖析》 设计模式: 《设计模式》 《HeadFirst设计模式》 脚本语言: 《Python学习手册》 掌握一门脚本语言很必要,最好有工程实践。 操作系统方面: 《Linux程序设计-鸟哥的私房菜》。 《UNIX网络编程》 不但要会基本命令,最好能在linux环境下有编程经验。 《深入理解计算机系统》个人觉得这本书并不好。 数据库: 没有发现更好的,要会基本的SQL命令。

沉默术士 2019-12-02 01:19:49 0 浏览量 回答数 0

回答

Javascript的new关键字主要的作用是继承 new一共经历4个阶段 1、创建一个空对象 var obj = new Object(); 2、设置原型链 此时便建立了obj对象的原型链 obj.proto = Object.prototype; 3、让Func的this指向obj,并执行Func函数体 Object.call(obj); 4、判断Func(构造函数)的返回值类型 return typeof result === 'object'? result : obj; 构造函数默认return this,不用写,如下 function A(){ this.name = x; // return this; } 如果构造函数return是基本数据类型: return 1 return "abc" 则return 后的东西忽略,就是return {} 如果是return的是引用类型: 则以return的内容为准 function A(){ this.name = x; // 无效 return {a: 1}; }

景凌凯 2020-04-03 22:01:46 0 浏览量 回答数 0

回答

指针的本意是:在一个变量中保存另一个变量的地址,以提供将“地址”变量化的能力。如果没有指针,将无法用一个变量引用另一个变量(只能把变量的值拷贝一份赋给另一个变量)。C语言中提供了完善的指针操作,包括为指针赋值、内存分配(malloc)、取变量地址、让指针可以参与运算等,这使得C程序员能够任意操作可用内存。Java(Javascript)中也有指针,只不过与C相比,Java对程序员使用指针有着严格的限制,仅允许赋值操作,而且不是任意值,只能是通过new创建的对象引用或其他引用变量的值。不过Java一般不说指针,而是用引用(reference)来称呼指向对象的指针,不过,Java中仍然可以找到一些指针存在的影子,例如,当一个对象为null时调用方法会导致null pointer异常,即所谓的空指针错误,可见Java内部使用的确实是指针。很多基本的数据结构,例如链表、树、图等,都必须用指针来保存前驱或后继节点的地址,否则这些数据结构无法实现。如果一个语言不提供指针,虽然在理论上它也具备完整的计算能力,但很多在其他语言中非常简单的问题都将变得极其复杂(本来想举个例子的,但一时想不起了,不过这个结论肯定是正确的)。所以这个作者说的是对的,只是你需要理解指针的本质,不要错误地认为只有像C语言那样的指针才叫指针,真正的指针的概念请看我开头的那句。

a123456678 2019-12-02 02:41:19 0 浏览量 回答数 0

回答

1、Kotlin 是一种在 Java 虚拟机JVM上运行的高级编程语言,作用类似 Android 开发的Swift,由 JetBrains公司开发并开源。 Kotlin 可以像编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。 都怪Oracle背后捣乱,告谷歌,逼迫Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。2、Groovy是一种基于Java JVM平台的面向对象语言,也是运行在JVM之上,可以使用Java库。 Groovy 1.0于2007年1月2日发布3、JVM之上语言太多了,目前从语言来看,多了一种选择,备胎,分流了一部分Java开发者,但是基本大家还是Java为主,刺激Java,也去改进吸收这些其他语言的优点。

徐雷frank 2019-12-02 01:47:25 0 浏览量 回答数 0

回答

问题①:现在Web前端开发的薪资待遇怎么样? 问题②:学了Web前端开发技术出来是否好找工作? 问题③:Web前端开发需要掌握哪些技术知识点? 问题④:非科班出生学习Web前端是否能做找到工作? 第一:前端技术在我国发展的还算是比较完善,只要你现在能把前端技术学好,具备一定的开发经验,想要找到合适的岗位工作,基本上还是没有什么问题。21世纪是信息时代,随着互联网快速的发展,市场上对前端技术也会持续增加。我们来看下目前前端开发在一线城市的薪资待遇水平: 可以看出现在前端开发在一线城市的薪资待遇水平是在16k左右,当然这是具备一定开发经验的,一般就我们刚学完前端技术出来,能顺利通过企业岗位工作面试,基本上能拿到的薪资待遇在3-7k左右,据你的技术水平而定。 第二:学了前端技术出来是否好找工作呢?这个没有绝对肯定的回答。这个要根据你的技术水平而定,我上第一点的时候已经说了,只要你可以把市场需求的前端技术知识点都掌握,具备一定的开发经验,想要找到合适的岗位工作,基本上没什么问题。如果说你就学了一点简单的HTML,CSS就想找到这方面的工作,那我建议你还是放弃吧。 第三:想要从事前端开发方面的岗位工作,需要掌握哪方面的技术知识点? 1、HTML HTML页面固定,标签不多,学起来比较容易,这也是很多零基础转行IT首选前端的主要原因。HTML是页面结构的基础组成部分,是网站的基础,编写HTML代码需遵循HTML代码规范,臃肿混乱的HTML代码不但会影响其本身的表现,而且与其对应的CSS和Javascript代码也会变得难以编写和维护。 2、CSS CSS负责网页类容的表现,也是前端开发需要掌握的核心内容之一。CSS和HTML代码一样,没用复杂的逻辑,上手也比较容易,其主要难点在于如何合理利用CSS的组合和继承特性来编写简洁,维护性好的CSS代码。 3、JavaScript JavaScript是一种基于对象和事件驱动的客户端脚本语言,是页面实时动态交互的技术基础。开发人员在熟悉Javascript基本语法和基本的编码规范之外,还应该了解并解决在不同浏览区中JavaScript的兼容性问题。另外,目前流行的Web编程方式会有部分后端代码存在于前端页面中,和前端HTML、Javascript等混合在一起,如PHP、JSP、http://ASP.NET等,因此,前端开发工程师也有必要了解一些后端编程技术。 4、跨平台、跨浏览器 跨平台指移动设备(如智能手机和平板电脑)和PC端; 随着IE6,IE7市场占有率下降和众多浏览器标准的重视,目前流行的前端框架已经很好滴解决了浏览器兼容问题。尽管如此,还需熟悉常见的浏览器兼容问题,如IE7、IE8的兼容,HTML5中新特性的兼容等。 5、前端框架 前端框架的出现在很大程度上降低了前端开发的难度,框架统一了编码的方式,封装了浏览器兼容问题并添加了大量的扩展功能。目前比较常用的前端开源框架有很多,比如jQuery(Javascript库)、angular2、vue.js、react等。 6、调试工具 对于前端代码,在调试过程中需要查看HTML结构变化,CSS渲染效果,Javascript代码执行情况以及HTTP请求和返回的数据,并了解网站各部分的性能等。主流浏览器都有对应的浏览器插件来辅助完成这个工作,如IE中的IE Dev Toolbar、Chrome中的Developer Tools、Firefox中的Firebug等。 7、实战经验 企业在招聘的过程中都想要选出上手即用的前端人才,这就需要求职者具备相应的开发经验、能够很快的接手工作。因此如果你想要学习Web前端,不仅要掌握理论知识,更要注重积累实战经验。 8、沟通表达能力 求职面试需要好的表达能力,在日常工作中前端人员也要具备好的沟通能力。Web前端是介于UI和后端逻辑开发之间的岗位,需要与UI设计师沟通确定效果,还需要和后端工程师沟通确定前后端交互,良好的沟通让你这些过程变得轻松许多。 第四:非科班出生学了前端技术出来可以找到工作吗? 对于这个问题,我想说,你考虑的地方有点多了,是否可以找到工作呢?我的回答是肯定的。前端技术没有一定说是只有科班出生才能学的,非科班出生也可以学前端。你看现在市场上上千万的做开发的人群,难道说他们都是科班出身的吗?不可能对吧。所有加油吧。

茶什i 2020-01-13 11:35:15 0 浏览量 回答数 0

回答

在JS中,除了原始类型那么其他的都是对象类型了。对象类型和原始类型不同的是,原始类型存储的是值,对象类型存储的是地址(指针)。当你创建了一个对象类型的时候,计算机会在内存中帮我们开辟一个空间来存放值,但是我们需要找到这个空间,这个空间会拥有一个地址(指针)。 const a = [] 对于常量a来说,假设内存地址(指针)为#001,那么在地址#001的位置存放了值 [],常量a存放了地址(指针)#001,再看以下代码 const a = [] const b = a b.push(1) 当我们将变量赋值给另外一个变量时,复制的是原本变量的地址(指针),也就是说当前变量b存放的地址(指针)也是#001,当我们进行数据修改的时候,就会修改存放在地址(指针)#001上的值,也就导致了两个变量的值都发生了改变。 接下来我们来看函数参数是对象的情况: function test(person) { person.age = 26 person = { name: 'yyy', age: 30 } return person } const p1 = { name: 'yck', age: 25 } const p2 = test(p1) console.log(p1) // -> ? console.log(p2) // -> ? 首先,函数传参是传递对象指针的副本到函数内部修改参数的属性这步,我相信大家都知道,当前p1的值也被修改了但是当我们重新为person分配了一个对象时就出现了分歧,请看下图 所以最后person拥有了一个新的地址(指针),也就和p1没有任何关系了,导致了最终两个变量的值是不相同的。 JavaScript的参数是按照什么方式传递的? 基本类型是按值传递的;复杂类型是按引用传递或共享传递的。

前端问答 2019-12-02 03:21:33 0 浏览量 回答数 0

问题

老而不死的三种编程语言?

珍宝珠 2020-01-13 11:06:22 472 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站