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 本质:元数据 反射的本质其实是使用元数据:元数据其实就是程序 ...
随机推荐
- Schlumberger Petrel 2016.3 地震解释 油藏模拟
Schlumberger Petrel 2016.3 地震解释 油藏模拟世界上顶尖的三维地质建模软件,软件为用户提供的工具可以用于地震解释.地质建模.油藏数 值模拟等方面的使用,清晰的地质模型可以描述 ...
- Cocos Creator 构建发布... APP ABI(选项)
APP ABI 选项对应的是设备的 CPU 架构.勾选不同的值,编译出来的 apk 可以适用于不同的设备.勾选的越多,适配的机器越多.但是相应的 apk 包体越大. 需要根据自己的项目实际情况决定要编 ...
- VS工具箱中添加DevExpress控件
关闭所有VS进程: ①使用控制台进入DevExpress安装目录: D:\DevExpress\Components\Tools\ ②添加DevExpress控件:ToolboxCreator.exe ...
- tree状数据叶子节点与根节点等的递归转换
做项目时经常遇到树状层级数据.从各个层级数据的转换查询等.场景如行业类别的多层级,行政区层级,检查项类别层级等等. 数据结构如 Id Name ParentId #region area树状节点的转 ...
- JVM进程启动会启动哪些线程?
首先要明白一点:JVM本身是一个多线程的程序,和我们编写的java应用程序一样,当JVM启动执行时就是在操作系统中启动了一个JVM进程.我们编写的java单线程或多线程应用进程都是在JVM这个程序中作 ...
- 【融云分析】 IM 即时通讯之链路保活
众所周知,IM 即时通讯是一项对即时性要求非常高的技术,而保障消息即时到达的首要条件就是链路存活.那么在复杂的网络环境和国内安卓手机被深度定制化的条件下,如何保障链路存活呢?本文详解了融云安卓端 SD ...
- 遍历tr通过name获取对应值用作判断或者赋值
$("#table tr:gt(0)").each(function(i){ var bidPrice = $("input[name='bidPrice2s']&quo ...
- php 使用代理IP进行数据抓取
什么是代理?什么情况下会用到代理IP?代理服务器(Proxy Server),其功能就是代用户去取得网络信息,然后返回给用户.形象的说:它是网络信息的中转站.通过代理IP访问目标站,可以隐藏用户的真实 ...
- Git_GitHub-使用过程遇到的问题——坑(持续添加)
push错误——>master git push -u origin master 最后找到解决办法如下: 1.先删除远程 Git 仓库 $ git remote rm origin 2.再添加 ...
- [Python数据挖掘]第2章、Python数据分析简介
<Python数据分析与挖掘实战>的数据和代码,可从“泰迪杯”竞赛网站(http://www.tipdm.org/tj/661.jhtml)下载获得 1.Python数据结构 2.Nump ...