js高级语法
...
js面试
js知识点1.常见的值和引用类型值: undefine 字符串 数值 bool symbol 引用: 对象 数组 null 2.深拷贝与浅拷贝对于一种问题,比如对象的引用 let obj1 = obj2 obj1.name = “aa” 那么,obj2的name也会因此改变,这就是浅拷贝 这两个对象实例都是指向的同一块内存空间,如果是深拷贝的话,就不会出现这种问题。深拷贝就相当于是把原对象通过递归的方式,将原对象原原本本的复制过去。这样,这个对象实例就变成了一个独立的个体,有着自己的内存空间。 12345678910111213141516171819202122232425function deepClone(obj={}){ if(typeof obj !== 'object' || obj == null){ // 如果传入的不是对象或者为空的话,那么就给他按原值返回 //因为后面需要递归进行调用,如果遇到值,就可以直接进行赋值 ...
函数参数为对象
1.函数的参数为对象当一个函数的参数为对象的时候,需要准确的传入与对象内名称一致的参数字段例如 123456789function test({page=1,pagesize=10){ page*=1; pagesize*=1; const total = page*10+pagesize console.log(total); return total;}test({page:0,num:2,pagesize:10}) 这个测试的结果就是10,中间存在一个其他项num,但是不影响,这个函数会准确的找到同名的字段进行赋值,而且只会去找同名的,如果你缺少一个需要的字段,并且在函数定义的时候没有去给他一个初值,那么返回的结果就会是一个NaN。
mp2代理运行服务端代码
修改代码后,需要将项目重启 我目前的操作是先将服务关闭,删除,然后重新启动 pm2 stop all pm2 delete all pm2 start ./bin/www
内置模块
node内置模块1.path模块path模块可用于路径拼接 1234const path = require('path');const basePath = 'ser/why'const fileName = 'abc.txt'const filePath = path.resolve(basePath,fileNmae) 用的最多的就是path.resolve 关于路径拼接, 还有另一种方式 1const fileName = path.join(basePath,fileName) join,可以拼接三个或者多个路径,但是join并不会智能解析前面的’../‘ 而resolve可以智能解析前面的../将其解释为真实路径 获取路径信息 path.dirname(path)//表示文件路径 path.extname(path)//表示文件扩展名 path.basename(path)//表示文件名称 2.fs模块,文件读写12const info =...
game
Tic Tac Toe项目总结1.v-for使用报错:Cannot use v-for on stateful component root element because it renders multiple elements. 不能在根元素(root element)使用 v-for,因为v-for是个循环体呈现多个元素,v-for在根元素上导致无法渲染。 ==使用v-for的时候需要在外层加上一个div不能让他处在根元素上== 正确示例: 12345<template id="block1"> <div class="body"> <div class="box1" v-for="item in total_stats1" @click="">{{item.id}}</div> ...
problem
这里是问题汇总1.关于组件化问题:报错内容: did you register the component correctly? For recursive components, make sure to provide the "name" option. 翻译过来是: 您是否正确注册了组件?对于递归组件,请确保提供“name”选项 出现问题的原因: 所渲染的Vue实例不能在组件前面,若在前面创建实例,则无法读取到后面创建的组件。 即new Vue()==实例化Vue要放在后面== 此时问题解决,同时网上还会有引起类似报错的操作: 如果全局注册,组件名称问题: 若是组件名称是大写,Vue会报错. 可以修改为下面两种: 修改组件名称为小写,即mycomponent即可解决. 如使用局部注册,则是components少写了个s: 2.注意string类型和number类型比较会出问题1234567891011for (let item of this.childstats) { ...
role
...
JavaScript
这里是JavaScript笔记1.作用域:内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值,这种结构我们称之为作用域链 它坚持一个“就近原则” 2.创建函数的两种方法:(1):利用函数关键字自定义函数(命名函数)function fn(){} (2):利用函数表达式声明(匿名函数)var fun = fuction(){}两者创建方法不同,但是大体用法是相同的,函数表达式同样可以进行传递参数 3.调用对象属性的两种方法:(1):Obj.name (2):Obj[‘name’] 4.构造函数首字母要大写5.DOM:element :元素!!一定要记住页面中所有标签都是元素。文档:一个页面就是一个文档,DOM用document表示。网页中所有内容都是节点(标签,属性,文本,注释等),DOM中使用node表示DOM把以上内容都看做是对象 6.获取元素:(1)通过id:document.getElementById();//返回的是一个元素对象var timer =...
Vue-CLI目录构成
5.221.Vue CLI目录: hello //项目名 -build //用来使用webpack打包build依赖 -config //用来做整个项目配置目录 -node_modules //用来管理项目中使用的依赖 -src //用来书写vue的源代码【重点】 -assets //用来存放静态资源【重点】 -components //用来书写vue组件【重点】 -router //用于配置项目中的路由【重点】 -App.vue //项目中的根组件【重点】 -main.js //项目中的主入口【重点】 2.在main.js中,开头import Vue from...









