Js拾忆
instanceof运算符:他是判断一个构造函数的prototype是否在对象的原型链上查找到
var a = new Array(); console.log(a instanceof Array) //true
//a.__proto__ == Array.prototype //如果a不是对象将返回false
//如果右边不是构造函数将报错
箭头函数注意点,当箭头函数返回一个对象的话,要使用大括号把对象括起来,要不然会被认为是一个函数体
var fn = () => ({a:10});
Object.assign(target,obj1,obj2...):合并对象,将源对象的所有可枚举属性复制到目标对象,属于浅拷贝
fn1();//fn1
fn2();//报错,因为js代码执行过程会先函数声明预解析 //1.函数声明
function fn1(){
console.log('fn1');
} //2.函数表达式
var fn2 = function(){
console.log('fn2');
} //3.new Function();这个方式创建函数会先解析字符串为js的代码,执行速度慢,也是函数对象
var fn3 = new Function('var name = "小明";console.log(name);');
fn3(); //小明
//------------------------------------------ if(true){
function fn1(){
console.log('fn1');
}
}else{
function fn1(){
console.log('fn2');
}
}
fn1();//fn1,在现代浏览器里if语句里的函数声明不会预解析,老版本IE会解析 /*调用函数的方式
1、普通函数调用 this指向window
2、对象里的方法调用 this指向调用改方法的对象
3、作为构造函数调用 this指向由该构造函数创建的对象
4、作为事件的处理函数 this触发该事件的对象
5、作为定时器的参数 this指向window
*/
//浅拷贝,把一个对象复制给另外一个对象的时候,只能复制基本类型数据,如果这个对象还有引用类型的时候就不会复制该对象里面里面的成员
obj1 = {
name : '小明',
age : 16
}
obj2 = {};
for(var attr in obj1){
obj2[attr] = obj1[attr];
}
//深拷贝
function deepCoop(obj1,obj2){
var obj2 = obj2 || {};
for(var attr in obj1){
if(typeof obj1[attr] == 'object'){
obj2[attr] = (obj1[attr].constructor === Array) ? [] : {};
deepCoop(obj1[attr],obj2[attr])
}else{
obj2[attr] = obj1[attr];
}
}
return obj2;
}
Js拾忆的更多相关文章
- .Net拾忆:从List去除重复-拾忆集合
方法1: private static List<int> DistinctList(List<int> list) {//去除重复 HashSet<int> ha ...
- jquery实现的网页选项卡(拾忆)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 小知识,大智慧(restframework 拾忆)
一.直接对query_set序列化,在页面展示的效果是Unicode 编码格式 ,可在json 序列化时候加入一个参数 course_query = DegreeCourse.objects.all( ...
- Libero 使用拾忆
使用Libero软件进行管脚分配的时候可以使用脚本语言,详细的使用说明见des_constraints_ug.pdf(在Libero安装目录下寻找) 如: set_io srame_oe -REGIS ...
- Python拾忆--多线程的socket服务器
阳光明媚的午后,想想最近要开始从写Java到写Python了,就随手打开电脑来体验一下Python与Java之间的不同吧~ 记得我还在上大二的时候,那个时候才开始学Java,最感兴趣的就是Java书最 ...
- SQL SERVER 高级编程 - 自定义函数 拾忆
每个人都很忙,但是花10分钟复习下,总结下基础东西还是很有益处的. 背景: 总结一句,使用简便,还能递归,是的SQL更简洁,相对比一大堆的关联语句,而且关联一大堆还不一定实现特定功能.而且共用部分可以 ...
- spring mvc DispatcherServlet详解之拾忆工具类utils
DispatcherServlet的静态初始化 /** * Name of the class path resource (relative to the DispatcherServlet cla ...
- #ifdef,#else,#endif,#if 拾忆
预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作.说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译.这样做的好处是,经过处理后的代码,将会变的很精短. ...
- .NET拾忆:反射的本质——元数据
反射主要使用的命名空间: System.Reflection System.Type System.Reflection.Assembly 本质:元数据 反射的本质其实是使用元数据:元数据其实就是程序 ...
随机推荐
- VisualVM监控远程服务器JVM
VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用.JVM堆内存消耗.线程.类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很 ...
- 20.C# 创建自己的泛型类型
1.定义泛型类 可以使用以下语法创建泛型类,T可以是任意符合C#标识符命名规范的任意标识符 class MyGenericClass<T> { //.... } 泛型类可以包含任意多个类型 ...
- Cocos Creator(圆形遮罩头像)动态增加遮盖层 mask 并设为圆形生效
var avatar = new cc.Node('avatar'); var sp = node.addComponent(cc.Sprite); sp.spriteFrame = new cc.S ...
- OI养老专题02:约瑟夫问题求幸存者
如题.人数为n(1<=n<=30000),共k(1<=k<=30000)组数据,所报的数m恒为2,只要求输出幸存者. 如果你还不知道什么是约瑟夫问题...——https://w ...
- Django中怎么做图片上传--图片展示
1.首先是html页面的form表单的三大属性,action是提交到哪,method是提交方式,enctype只要有图片上传就要加这个属性 Django框架自带csrf_token ,所以需要在前端页 ...
- supervisor 从安装到使用
(转)https://www.jianshu.com/p/3658c963d28b 一.安装 源码安装 先下载最新的supervisor安装包:https://pypi.python.org/pypi ...
- Delphi下MSMQ(Mircosoft Message Queue)实例(私有队列)
网上关于消息队列技术原理说明的详细文档很多,但涉及到Delphi的具体实现很少,这是我从网上找了一上午的资料,自己整合和尝试的能运行的程序. 打开控制面板->程序->添加组件,添加消息队列 ...
- mysql 事物没提交导致事物一直运行解决方案
1.设置 innodb_kill_idle_transaction 参数, 可以永久避免 https://dbaplus.cn/news-11-974-1.html
- IP通信基础学习第七周(下)
H3C的配置指令包括:基本配置,查看指令,接口配置. 基本配置包括:查看可用指令:进入系统视图,全局配置模式:给设备命名:退回上一层模式:直接退回到用户模式. 查看指令包括:显示设备系统版本信息:显示 ...
- HTML5 本地缓存 window.localStorage
简单运用 html <div onclick="storage('invoice')"></div> js 设置 与 获取 function storag ...