jquery数组

25个最基本的JavaScript面试问题及答案

本秂侑毒 提交于 2019-11-27 17:21:33
1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个陷阱? 尽管 typeof bar === "object" 是检查 bar 是否对象的可靠方法,令人惊讶的是在JavaScript中 null 也被认为是对象! 因此,令大多数开发人员惊讶的是,下面的代码将输出 true (而不是false) 到控制台: var bar = null; console.log(typeof bar === "object"); // logs true! 只要清楚这一点,同时检查 bar 是否为 null,就可以很容易地避免问题: console.log((bar !== null) && (typeof bar === "object")); // logs false 要答全问题,还有其他两件事情值得注意: 首先,上述解决方案将返回 false,当 bar 是一个函数的时候。在大多数情况下,这是期望行为,但当你也想对函数返回 true 的话,你可以修改上面的解决方案为: console.log((bar !== null) && ((typeof bar === "object") || (typeof bar === "function"))); 第二,上述解决方案将返回 true,当 bar 是一个数组(例如,当 var

25个最基本的JavaScript面试问题及答案

时光总嘲笑我的痴心妄想 提交于 2019-11-27 17:21:16
1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个陷阱? 尽管 typeof bar === "object" 是检查 bar 是否对象的可靠方法,令人惊讶的是在JavaScript中 null 也被认为是对象! 因此,令大多数开发人员惊讶的是,下面的代码将输出 true (而不是 false ) 到控制台: var bar = null; console.log(typeof bar === "object"); // logs true! 只要清楚这一点,同时检查 bar 是否为 null ,就可以很容易地避免问题: console.log((bar !== null) && (typeof bar === "object")); // logs false 要答全问题,还有其他两件事情值得注意: 首先,上述解决方案将返回 false ,当 bar 是一个函数的时候。在大多数情况下,这是期望行为,但当你也想对函数返回 true 的话,你可以修改上面的解决方案为: console.log((bar !== null) && ((typeof bar === "object") || (typeof bar === "function"))); 第二,上述解决方案将返回 true ,当 bar 是一个数组(例如,当

js 数组对象深拷贝

被刻印的时光 ゝ 提交于 2019-11-26 22:59:11
结论:对象的拷贝不能采用直接赋值的方式。 背景 踩过的坑如下: formData本来是父组件传过来的,但是我不想直接用,于是我直接赋值给一个formDataCopy的对象。 但是诡异的事情发生了,就是在我填写自己的表单组件的时候,一旦表单的数据发生的变化时,本来是formDataCopy的值发生变化,但是‘formDataDefault值’ 这个字符串却被打印出来,也就是说formData改变了。 奇怪,formData是父组件传过来的值怎么会改变呢? 经过一番挣扎,才发现formDataCopy使用的是简单的赋值,导致formDataCopy和formData指向相同的对象。 formDataCopy一改变,formData就会跟着变。 以上是背景,所以我就对浅拷贝和深拷贝进行了总结: 浅拷贝 什么是浅拷贝:两者是指向一个对象。 对象的浅拷贝 1、对象的直接遍历赋值。 2、ES6中的 var copyObj = Object.assign({}, obj); 3、ES7扩展运算符 var copyObj = { ...obj } 4、Jquery浅拷贝 var copiedObject = jQuery.extend({}, originalObject) 如果改变了originalObject,copiedObject 也会变。 数组的浅拷贝 (两者指向不同的对象

原生JS中forEach只能遍历数组,不能遍历类数组

痞子三分冷 提交于 2019-11-26 19:24:40
经实验证实js中forEach只能遍历数组,不能遍历类数组 jQuery中each方法可以遍历数组和类数组 1.forEach方法 <body> <div> </div> <script> var odiv = document.getElementsByTagName('div');//odiv是类数组 var arr = [1,2,3,4]; console.log(odiv); console.log(arr); arr.forEach(function(ele,index){ console.log(ele); }) odiv.forEach(function(ele,index){ console.log(ele); }) </script> </body> 运行结果: 2.jQuery中each方法: <body> <div> </div> <script src="./jquery.js"></script> <script> var arr = [1,2,3,4]; $(arr).each(function(index,ele){ console.log(ele); }) $('div').each(function(index,ele){ console.log(ele); }) </script> </body> 运行结果: 来源: https://blog

jQuery1.2选择器(转)

这一生的挚爱 提交于 2019-11-26 15:42:59
jQuery1.2选择器 2007-11-30 21:57 以下的文档根据官网1.2选择器汉化,并做相应的调整及加入了部份示例。 由于实际使用中选择器在IE和非IE下会有不同的效果,请参照红色的字样。如有错误请及时联系我。 绯雨汉化: http://feiyu.asgard.cn 基本选择器 #myid 返回: <jQuery对象> 匹配一个id为myid的元素。 element 返回: <jQuery对象> 数组 匹配所有的element元素 .myclass 返回: <jQuery对象> 数组 匹配所有class为myclass的元素 * 返回: <jQuery对象> 数组 匹配所有元素。 该选择器会选择文档中所有的元素,包括html,head,body selector1,selector2,selectorN 返回: <jQuery对象> 数组 匹配所有满足selector1或selector2或selectorN的元素 层次选择 elementParent elementChild 返回: <jQuery对象> 数组 匹配elementParent下的所有子元素elementChild。 例如:$("div p") 选择所有div下的p元素 elementParent > elementChild 返回: <jQuery对象> 数组