首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript 权威指南-学习笔记(一)

,而非包含块,这可能会导致隐含错误,推荐使用let) funtion:定义函数 class:定义类 对象 创建对象 直接创建对象 let empty = {}; //没有属性对象 let point...= {x:0, y:0}; //包含两个属性对象 使用new创建对象 let a = new Object(); //创建一个对象,与{}相同 let b = new Array(); /...()创建对象 Object.create()用于创建一个对象,使用其第一个参数作为对象原型: let a = object.create({x: 1, y: 2}); // a继承属性x和...是继承属性 object.assign():从一个对象向另一个对象复制属性 数组 创建数组 直接创建 let empty = []; // 没有元素数组 let primes = 1, 2,...Array.of() // =>[]; 返回没有参数空数组 Array.of(10) // =>10; 创建只有一个数值元素数组 Array.of(1,2,3) // =>1,2,3

73300
您找到你想要的搜索结果了吗?
是的
没有找到

高级前端开发者必会34道Vue面试题系列(二)

属性,当name属性有变化时要引起页面id=name响应变化 const model = { name: 'vue', }; // 利用Object.defineProperty创建一个监听器 function...但是当给name属性赋值为对象类型后,再给对象里插入key1一个属性后,接着改变这个key1值,这时候页面并不能得到响应式触发。...接下来要注意,在最后我改变了数组属性list下一个下标里值为5,页面也得到了监听结果,但是我改变了第二个下标后,没有触发setter,接着特意去改变listlength,或者push没有触发数组...Vue3.0数据变化监听 前一篇说了Vue3.0监听采用是ES6构造方法Proxy来代理原对象做变化检测,(对于Proxy不熟同学可以翻看上一篇内容)Proxy作为代理存在,当异步触发Model...Vue3.0中利用Proxy方式则完美解决了2.0中出现问题,所以以后面试中如果遇到Vue中对于数组监听处理时候,一定要分清楚是哪一个版本,本文完。

97930

34道Vue面试题系列:Vue中如何检测数组变化?

属性,当name属性有变化时要引起页面id=name响应变化 const model = { name: 'vue', }; // 利用Object.defineProperty创建一个监听器 function...但是当给name属性赋值为对象类型后,再给对象里插入key1一个属性后,接着改变这个key1值,这时候页面并不能得到响应式触发。...接下来要注意,在最后我改变了数组属性list下一个下标里值为5,页面也得到了监听结果,但是我改变了第二个下标后,没有触发setter,接着特意去改变listlength,或者push没有触发数组...Vue3.0数据变化监听 前一篇说了Vue3.0监听采用是ES6构造方法Proxy来代理原对象做变化检测,(对于Proxy不熟同学可以翻看上一篇内容)Proxy作为代理存在,当异步触发Model...Vue3.0中利用Proxy方式则完美解决了2.0中出现问题,所以以后面试中如果遇到Vue中对于数组监听处理时候,一定要分清楚是哪一个版本,本文完。

2.7K60

javascript常用技巧

如果为false则失败,其返回值是一个数组,由通过测试为true所有元素组成,如果没有任何数组元素通过测试,则返回空数组。...通过Object.create()方法创建一个继承自Object.create()方法内两个参数对象,这个对象原型对象指向父类superType原型,并且对象被指定了constructor属性并且定义成不可枚举内部属性...(作用是设置一个指定对象原型到另一个对象)将 superType 设置为 subType 原型,从而能够从父类中继承静态方法和静态属性。...前端页面脚本压缩可减少脚本数量和脚本大小,为了避免压缩时前一个脚本没有写最后一个分号导致压缩后脚本不能使用,所以更好写法是在开始圆括号前加一个分号 ;(function(b){ console.log...单例实例只有在调用时才创建不是一开始就创建好: // 惰性单例方法 let getSignInstance = function( fn ){ let instance = null;

74320

盘点那些 JS 手写题

手写 Object.create ❝Object.create()方法创建一个对象,使用现有的对象来提供新创建对象__ proto __ ❞ 「语法」 // 返回一个对象,带着指定原型对象属性...,需要是一个对象,该传入对象自有可枚举属性(即其自身定义属性不是其原型链上枚举属性)将为新创建对象添加指定属性值和对应属性描述符 「实现」 function createObject(proto...「描述」 「new」 关键字会进行如下操作: 创建一个简单JavaScript对象(即{}); 为步骤1新创建对象添加属性__proto__,将该属性链接至构造函数原型对象 ; 将步骤1新创建对象作为...手写数组 push 方法 「语法」 arr.push(element1, ..., elementN) elementN:被添加到数组末尾元素 返回值:当调用该方法时, length 属性值将被返回...创建AJAX请求步骤: 「创建一个 XMLHttpRequest 对象。」

1.3K30

.NET Core日志:将日志输出到控制台

ConsoleLogScope静态属性Current表示当前ConsoleLogScope,当我们通过指定name和state这两个参数调用静态方法Push时,该方法实际上会调用静态构造函数创建一个...方法被调用时候,它会将自己名称(Name属性)和指定State对象作为参数调用ConsoleLogScope静态方法Push并返回一个DisposableScope对象。...,如果需要将针对同一笔订单多条日志消息关联在一起,我们就可以针对订单ID创建一个日志上下文范围,并在此上下文范围内调用Logger对象Log方法进行日志记录,那么订单ID将会包含在每条写入日志消息中...,它接受一个IConsoleLoggerSettings接口参数,该接口表示为创建ConsoleLogger指定配置。...,有一个细节值得我们关注,那就是当我们调用它CreateLogger方法时候,ConsoleLoggerProvider并不总是直接创建一个ConsoleLogger对象

1.8K100

js学习

js数组可以看作java中arraylist集合 数组中每一个成员都没有限制,可以存放任意类型 数组成都可以自动修改 创建方式 1、var arr=[1,2,3,”a,true];//常用js数组...,元素通过指定分隔符进行分隔 ​ pop():删除并返回最后一个元素 ​ push():向数组末尾添加一个或者更多元素,并返回长度 ​...] var po=arr.pop() alert(po) alert(arr.length) //push向数组末尾添加一个或者更多元素,并返回长度 var arr=['a','b','c','...可以把传入字符串,作为JavaScipt代码执行 //可以扩展程序功能 //只能去传递基本数据类型字符串,不能床底字符串对象 alert(z) 编码和解码 encodeURI():把字符串编码为...树上一个元素节点对象一个标签属性会被加载成DOM树上一个属性节点对象一个标签内容体会被加载成DOM树上一个文本节点对象 整个DOM树,是一个文档节点对象,即DOM对象 一个html文档加载到内存中就会形成一个

1.6K10

vue面试常见考察点总结

常见配置选项有 deep 和 immediate,对应原理如下deep:深度监听对象,为对象一个属性创建一个 watcher,从而确保对象一个属性更新时都会触发传入回调函数。...同时旧节点 endIndex 移动到了 B,节点 startIndex 移动到了 E图片第三次循环中,发现E没有找到,这时候只能直接创建真实节点 E,插入到第二次创建 C 节点之后。...,如果是,则直接更新dom文本内容为节点文本内容节点和旧节点如果都有子节点,则处理比较更新子节点只有节点有子节点,旧节点没有,那么不用比较了,所有节点都是全新,所以直接全部新建就好了,新建是指创建出所有...DOM,并且添加进父节点只有旧节点有子节点节点没有,说明更新后页面,旧节点全部都不见了,那么要做,就是把所有的旧节点删除,也就是直接把DOM 删除子节点不完全一致,则调用updateChildrenfunction...Vnode文本节点如果oldVnode有子节点VNode没有,则删除el子节点如果oldVnode没有子节点VNode有,则将VNode子节点真实化后添加到el如果两者都有子节点,则执行updateChildren

78230

【面试需要-Vue全家桶】一文带你看透Vue前端路由

SPA,后端渲染是由性能问题,用户与服务器有经常提交多,后端路由就会导致网页频繁刷新,导致性能问题,就有了ajax前端渲染,SPA是单页面应用程序,整个网站只有一个页面,内容变化是通过ajax局部更新实现...router-link中,to表示目标路由链接,repalce,当点击时会调用router.replace()不是router.push(),导航后不会留下history记录。...是路由规则数组routers: {// 每个路由规则都是一个配置对象,其中至少包含path和compontent两个属性// path表示当前路由规则匹配hash地址{path:'/user',component...vue实例对象上router}); 路由重定向 路由重定向值是,用户在访问地址a时候,强制用户跳转到地址c,从而展示特定组件页面,通过路由规则redirect属性,指定一个路由地址,可以方便地设置路由重定向...使用路由参数} props值可以为对象类型参数,传递动态参数 constrouter =newVueRouter({routes: [// 如果props是一个对象,它会被按原样设置为组件属性{path

2.5K20

前端vue面试题2021_vue框架面试题

在堆空间中创建一个对象 this指向这个对象 执行构造函数语句 返回这个对象 6.请以自己理解讲解js堆和栈,以及深拷贝怎么解决?...(‘././’ + id) 取值页面 this. router.push(′./....(必背) 可以, 1.当没有参数传递时,方法名称后面可以不加小括号 2.当需要传递参数时,且只有一个参数需要传递,没有进行传递,会默认输出浏览器event对象 3.当需要传递多个参数时,想要获取浏览器...(必背) router为VueRouter实例,相当于一个全局路由器对象,里面含有很多属性和子对象, 例如history对象,经常用跳转链接就可以用this....(必背) 创建一个对象 this指向这个对象 给这个对象添加属性和方法 返回这个对象 47.什么是同源(必背) 答: 同源就是两个页面有相同协议 域名 端口 就属于同源 其中只要一个不同就不同源 48

1.8K40

能不能手写Vue响应式?前端面试进阶

,我们或许都有过这样子经历,在 data 中定义了一个对象,然后在程序执行过程中给他动态添加了属性,然后对当我们对该新增属性进行值更新时并没有触发视图更新,作为Vue初学者时,将 data 响应式当成黑盒对待...如上图所示,当给 id 赋值为一个对象时,触发了 id 数据更新,当对 id.num 进行赋值时,未触发数据更新,根据 步骤5 代码可以看出,这其实是因为执行 set 时候没有对设置 value...中,已经实现了对对象所有属性、嵌套属性进行监听,但是,如果 某个属性一个数组 呢,对数组进行 push、pop 等操作,会触发更新吗?...1、定义监听数组原型我们都知道,在 JS 中,任何对象都有原型,而我们目的是通过重写数组原型上方法(push、pop等)实现监听,作为库或是框架,我们都不应该去改变全局原型上任何原生方法或者属性...:创建对象,原型指向该对象undefinedconst arrProperty = Object.create(oldArrayProperty)undefined第三步:重写该对象方法undefinedarrProperty.push

58820

社招前端二面面试题

箭头函数与普通函数区别(1)箭头函数比普通函数更加简洁如果没有参数,就直接写一个空括号即可如果只有一个参数,可以省去参数括号如果有多个参数,用逗号分割如果函数体返回值只有一句,可以省略大括号如果函数体不需要返回值...//vue中购物车逻辑实现1. 购物车信息用一个数组来存储,数组中保存对象对象中有id和count属性2. 在vuex中state中添加一个数据 cartList 用来保存这个数组3....实现要点:new 会产生一个对象对象需要能够访问到构造函数属性,所以需要重新指定它原型;构造函数可能会显示返回;function objectFactory() { var obj =...实现 Object.createObject.create()方法创建一个对象,使用现有的对象来提供新创建对象proto。...undefined) { Object.defineProperties(obj, propertyObject) } if (proto === null) { // 创建一个没有原型对象对象

75220

能不能手写Vue响应式?前端面试进阶_2023-02-27

,我们或许都有过这样子经历,在 data 中定义了一个对象,然后在程序执行过程中给他动态添加了属性,然后对当我们对该新增属性进行值更新时并没有触发视图更新,作为Vue初学者时,将 data 响应式当成黑盒对待...) 如上图所示,当给 id 赋值为一个对象时,触发了 id 数据更新,当对 id.num 进行赋值时,未触发数据更新,根据 步骤5 代码可以看出,这其实是因为执行 set 时候没有对设置 value...】中,已经实现了对对象所有属性、嵌套属性进行监听,但是,如果 某个属性一个数组 呢,对数组进行 push、pop 等操作,会触发更新吗?...1、定义监听数组原型 我们都知道,在 JS 中,任何对象都有原型,而我们目的是通过重写数组原型上方法(push、pop等)实现监听,作为库或是框架,我们都不应该去改变全局原型上任何原生方法或者属性...:创建对象,原型指向该对象undefinedconst arrProperty = Object.create(oldArrayProperty)undefined第三步:重写该对象方法undefinedarrProperty.push

61930

能不能手写Vue响应式?前端面试进阶

,我们或许都有过这样子经历,在 data 中定义了一个对象,然后在程序执行过程中给他动态添加了属性,然后对当我们对该新增属性进行值更新时并没有触发视图更新,作为Vue初学者时,将 data 响应式当成黑盒对待...如上图所示,当给 id 赋值为一个对象时,触发了 id 数据更新,当对 id.num 进行赋值时,未触发数据更新,根据 步骤5 代码可以看出,这其实是因为执行 set 时候没有对设置 value...中,已经实现了对对象所有属性、嵌套属性进行监听,但是,如果 某个属性一个数组 呢,对数组进行 push、pop 等操作,会触发更新吗?...1、定义监听数组原型我们都知道,在 JS 中,任何对象都有原型,而我们目的是通过重写数组原型上方法(push、pop等)实现监听,作为库或是框架,我们都不应该去改变全局原型上任何原生方法或者属性...:创建对象,原型指向该对象undefinedconst arrProperty = Object.create(oldArrayProperty)undefined第三步:重写该对象方法undefinedarrProperty.push

57510

校招前端二面经典面试题(附答案)_2023-03-02

(1)箭头函数比普通函数更加简洁 如果没有参数,就直接写一个空括号即可 如果只有一个参数,可以省去参数括号 如果有多个参数,用逗号分割 如果函数体返回值只有一句,可以省略大括号...在JavaScript中是使用构造函数来新建一个对象,每一个构造函数内部都有一个 prototype 属性,它属性值是一个对象,这个对象包含了可以由该构造函数所有实例共享属性和方法。...特点: JavaScript 对象是通过引用来传递创建每个对象实体中并没有一份属于自己原型副本。当修改原型时,与之相关对象也会继承这一改变。...执行上下文类型 (1)全局执行上下文 任何不在函数内部都是全局执行上下文,它首先会创建一个全局window对象,并且设置this值等于这个全局对象一个程序中只有一个全局执行上下文。...(2)函数执行上下文 当一个函数被调用时,就会为该函数创建一个执行上下文,函数上下文可以有任意多个。

77040

vue-router 用法详解

定义路由 每个路由应该映射一个组件。 其中"component" 可以是通过 Vue.extend() 创建组件构造器,或者只是一个组件配置对象。...参数可以是一个字符串路径,或者一个描述地址对象: // 字符串 router.push('home') // 对象 router.push({ path: 'home' }) // 命名路由...,例如创建一个布局,有 sidebar(侧导航) 和 main(主内容) 两个视图,你可以在界面中拥有多个单独命名视图,不是只有一个单独出口。...# 布尔模式 如果 props 被设置为 true,route.params 将会被设置为组件属性。 # 对象模式 如果 props 是一个对象,它会被按原样设置为组件属性。...#$route.params: Object 一个 key/value 对象,包含了动态片段和全匹配片段,如果没有路由参数,就是一个对象

2.4K20

vue要点记录(待更新)

Vue实例 每个 Vue 实例都会代理其 data 对象里所有的属性:vm.a===data.a //true 注意只有这些被代理属性是响应。...如果在实例创建之后添加属性到实例上,它不会触发视图更新。 除了 data 属性, Vue 实例暴露了一些有用实例属性与方法。这些属性与方法都有前缀 $,以便与代理 data 属性区分。...这就意味着只要 message 还没有发生改变,多次访问 reversedMessage 计算属性会立即返回之前计算结果,不必再次执行函数。 ?...这些不会改变原始数组,但总是返回一个数组。...有时,我们想要显示一个数组过滤或排序副本,不实际改变或重置原始数据。在这种情况下,可以创建返回过滤或排序数组计算属性。 显示过滤/排序结果 事件处理器 ? 事件修饰符 ? ? 键值修饰符 ?

1.4K30
领券