![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
Junior Tacoo
欢迎一起探讨前端知识
展开
-
MVC与MVVM的区别
MVC与MVVM的区别区别:MVVM将“数据模型数据双向绑定”的思想作为核心(所以view和model之间没联系)。而Model和ViewModel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。它实现了View和Model的自动同步,也就是当Model的属性改变时,我们不用再自己手动操作Dom元素,来改变View的显示,而是改变属性后该属性对应View层显示会自动改变。MVVM:MVC:...原创 2021-03-23 00:52:39 · 87 阅读 · 0 评论 -
构造函数、原型、实例 三者的关系
构造函数、原型、实例 三者的关系 <script> // 构造函数来创建对象: function Star(uname,age){ this.uname=uname; this.age=age; // this.sing=function(){ // console.log('唱的歌'); // } }原创 2021-03-19 01:46:06 · 79 阅读 · 1 评论 -
面试题——请讲讲JavaScript的作用域
JavaScript的作用域在ES6之前,js的作用域只有两种:1.全局作用域定义在所有函数{}之外的变量,其作用范围是在整个脚本中2.局部作用域(函数作用域)使用var定义在函数内部的变量,其作用范围是整个函数结构,超出函数的 {} 花括号的范围则不能使用。3、块级作用域(ES6中):在一个{}中使用了let关键字声明的变量具有块级作用域 只能在{}内调用(用var关键字声明是没有块级作用域的)PS:补充知识:块级作用域的三大特点1.无变量提升——在ES6中 let只能先声明再使用,也就是原创 2021-03-12 00:50:03 · 167 阅读 · 0 评论 -
递归的简单理解
1、递归是什么?五个字——’我调我自己‘!递归指的是函数在其内部再次调用自己本身,完成一些(诸如循环遍历等)操作。2、如何实现简单的递归?下面我封装了一个 通过传参输入id就可以查询并返回相应商品的ID值,只不过 图一只能返回一级商品,商品的下一级并不能被查询返回到:(如果此处传参输入(data,11) 返回的是undefined) <script> var data = [{ id: 1, name: '彩电原创 2021-03-09 23:58:40 · 145 阅读 · 0 评论 -
JS迭代的方法有哪些?有什么区别?
JS迭代的方法有哪些?有什么区别?1、every()every()返回的是布尔值,every的意思是'全都要满足',将一个数组中的每一项都return后的条件进行比较,如果每一项都符合条件,返回true,否则返回false;(功能如其名,每一项都要满足 everything enough2.some()some的意思是'部分满足',将一个数组中的每一项都return后的条件进行比较,只要有一个满足条件,就返回true。(some one enough3、filter()filter.原创 2021-03-05 00:42:40 · 263 阅读 · 1 评论 -
如何实现数组的随机排序?
最简单的方法~原创 2021-03-03 21:48:50 · 128 阅读 · 1 评论 -
数组去重两种方法
1.核心:indexOf()是查询数组索引的方法,当他返回为-1时 代表没有找到符合条件的元素。function unquire(arr){var newArr = [];for(var i=0;i<arr.length;i++){ if(newArr.indexOf(arr[i])===-1){ //核心 newArr.push(arr[i]) //核心}}return newArr ;}var f1=unquire([a,b,c,d,e]);2....原创 2021-03-03 17:41:10 · 370 阅读 · 0 评论 -
浅谈JS的闭包
1.什么是闭包?当一个函数可以访问另一个函数的局部变量,此时就会有必报的产生。这个被访问的函数就称为闭包函数 (例下面的fun就是闭包函数)2.生成闭包的条件是什么?闭包的生成有三个必要条件(缺一不可)①. 在函数 A 内部直接或者间接返回一个函数 B②. B 函数内部使用着 A 函数的局部变量③. A 函数外部有一个变量接受着函数 Bfunction fn(){var num = 10; function fun(){console log(num);} ..原创 2021-03-02 21:46:36 · 101 阅读 · 1 评论 -
浅谈javaScript的深拷贝与浅拷贝
1.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用2.深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用”通俗点说 就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明是浅拷贝,如果B没变,那就是深拷贝。往深了说,就是B复制了A,如果B复制的是A的引用,那就是浅拷贝,如果B复制的是A的本体,那就是深拷贝。我们在什么情况下会用到深拷贝?我们希望在改变新的数组(对象)的时候,不改原创 2021-03-02 21:38:19 · 74 阅读 · 1 评论 -
主流浏览器兼容性问题与解决方案
主流浏览器兼容性问题与解决方案一:不同浏览器的标签默认的外补丁和内补丁不同所以几乎所有的CSS文件开头都会用通配符选择器*来定义*{margin:0padding:0}li{list-style:none //取消li的小圆点}img{border:0//照顾低版本浏览器 会有边框vertical-align:middle 取消图片的空白间隙}二:在IE6中,块级标签float中,显示margin比设置的大 float布局最常见的浏览器兼容问题 解决方案:在f原创 2021-02-28 17:49:49 · 436 阅读 · 0 评论 -
null和undifind的区别?
null和undifind的区别?null表示这里没有对象,不应该有值 数值为空 ——转化为数值为0undifind表示此处可以有值,只是这个值未定义 ——转化为数值为NaN原创 2021-02-27 23:03:48 · 648 阅读 · 0 评论 -
==与===有什么区别
==与===有什么区别?==是相等运算符 只要求左右两边数值相等 就可以返回true===是严格运算符 要求左右两边数值、类型都相等 才可以返回true原创 2021-02-27 23:01:15 · 496 阅读 · 1 评论 -
bind,apply,call的区别
面试问题——bind,apply,call的区别bind,apply,call三者都是改变this的指向的,当一个 Object 没有某个方法,但是呢,其它的对象有,我们可以借助 call 或 apply 用其它对象的方法来操作。不同之处在于,①call 方法传递给调用函数的参数是逐个列出的,而 apply 则是要写在数组中。②bind是返回对应函数,延迟调用,call与apply是立即调bind是返回对应函数call:apply:...原创 2021-02-25 00:30:57 · 80 阅读 · 1 评论