object

JavaScript 中的数据类型与变量

你离开我真会死。 提交于 2020-02-16 13:12:55
一、动态类型 JavaScript 是一种 弱类型 或者说 动态 语言。这意味着我们不用提前声明变量的类型(松散类型),在程序运行过程中,类型会被自动确定。也就是说我们可以使用同一个变量保存不同类型的数据,每个变量仅仅是一个用于保存值得占位符而已。 二、变量 定义变量 定义变量时要使用 var 操作符( var 是一个关键字),后跟变量名(即一个标识符): var username ; ES6 中新增了 let 和 const 关键字来代替 var ,这里我们先不做过多的讨论。 这行代码定义了一个名为 username 的变量,该变量可以用来保存任何值。这里有一点需要注意:像这样未经过初始化的变量,会保存一个特殊的值 —— undefined 。 初始化变量 我们也可以初始化变量,在定义变量的同时可以设置变量的值: var username = 'Deepspace' ; 初始化变量并不会把它标记为字符串类型,初始化的过程就是给变量赋一个值。 修改变量 因此,我们可以在修改变量值的同时修改值得类型: var username = 'Deepspace' ; username = 1 ; 有一点需要注意,用 var 操作符定义的变量将成为该变量的作用域中的局部变量。也就是说,如果在函数中使用 var 定义一个变量,那么这个变量在函数退出后就会被销毁。看个例子: function

JS基础

三世轮回 提交于 2020-02-16 10:13:28
一.JS介绍   JS语言是浏览器脚本语言,可以编写运行在浏览器上的代码程序,书写在script标签中,属于解释器、弱语言类型编程语言。 二.JS的组成 JS语言由ES语法、DOM(document object model)、BOM(browser object model)三部分组成。ES(ECMAScript)语法分为ES5和ES6。 1.行间式 书写在一个个全局事件名属性中 <div id="ddd" onmouseover="this.style.color = 'red' " onmouseleave= "this.style.color = 'blue'">行间式</div> 2.内联式 存在于标签script中,语法采用的是小驼峰命名法,属性的值都是用字符串形式进行赋值 <script id="d1"> d1,style.backgroundColor = "pink" </script> 3.外联式 是通过script标签的src数据链接外部js文件 <script src= "js文件.js"></script> JS存在位置 (JS出现在head标签底部:依赖型JS库 ; 出现在body标签底部:功能型JS脚本) JS以;分号标识语句的结束,以作用域({})标识附属关系 三.JS变量 ES5语法: var ddd=1; 无块级作用域变量 ddd=1; 全局变量

Convert object key to array with values number of key with Lodash [duplicate]

风格不统一 提交于 2020-02-16 08:39:28
问题 This question already has answers here : How to produce an array from an object where the number of elements is determined by Object.values? (7 answers) Closed 10 days ago . I have an object with products: products: { bread: 1, milk: 2, cheese: 2, chicken: 1, } I would like to have an array with the name of products like this: products: ['bread', 'milk', 'milk', 'cheese', 'cheese', 'chicken'] I was trying to use lodash with reduce method but I don't know how to "multiply" this product in

Java-内存区域

一曲冷凌霜 提交于 2020-02-16 06:38:09
对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,而且不容易出现内存泄漏和内存溢出问题,看起来由虚拟机管理内存一切都很美好。不过,也正是因为Java程序员把内存控制的权力交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误将会成为一项异常艰难的工作。 ————《深入浅出Java虚拟机》 程序计数器Program Counter Register 程序计数器是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号解释器。 在虚拟机的概念模型中,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)只会执行 一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储,我们称这类内存区域为“ 线程私有 ”的内存。 Java虚拟机栈Java Virtual Machine Stacks Java虚拟机栈也是 线程私有 的

小程序请求Django后台及路由跳转

有些话、适合烂在心里 提交于 2020-02-16 02:46:50
目录 小程序请求Django后台(wx.requests) 小程序路由的跳转方式 wx.switchTab(object,object) wx.reLaunch(Object object) wx.redirectTo(Object object) 小程序请求Django后台(wx.requests) 小程序: # pages/test1/test1.wxml <button bind:tap="req">点我</button> # pages/test1/test1.js Page({ req:function(){ wx.request({ url: 'http://127.0.0.1:8000/test', data:{"name":"zhang"}, // 向后端发送的数据,后端通过request.data拿到该数据 method:"POST", header:{ "content-type":'application/json' }, success(res) { console.log(res) } }) } }) ''' 回调的结果res: {data: {…}, header: {…}, statusCode: 200, cookies: Array(0), errMsg: "request:ok"} cookies: [] length: 0nv_length:

vue数据响应式原理

喜你入骨 提交于 2020-02-16 01:22:25
vue2.0数据响应式原理 对象 Obect.defineproperty 定义对象的属性mjm defineproperty 其实不是核心的为一个对象做数据双向绑定,而是去给对象做属性标签,设置一系列操作权限,只不过属性里的get和set实现了响应式 var ob = { a: 1, b: 2 } //1-对象 2-属性 3-对于属性的一系列配置 Object.defineProperty(ob, 'a' , { //a对象则是ob的绝对私有属性,,默认都是true writable: false, enumerable: false, configurable: false }) ob.a = 3 console.log(Object.getOwnPropertyDescriptor(ob, 'a')) console.log(ob.a) //1 var ob = { a: 1, b: 2 } //1-对象 2-属性 3-对于属性的一系列配置 /** * vue双向数据绑定 * 给ob的a属性设置get/set方法,则获取ob的a时,会触发get方法,设置ob的a时,会触发set方法 */ Object.defineProperty(ob, 'a' , { //a对象则是ob的绝对私有属性,,默认都是true get: function(){ console.log('a-

Scala基础(6) 单例对象和伴生对象

我怕爱的太早我们不能终老 提交于 2020-02-16 00:13:13
单例对象 Scala并没有提供Java那样的静态方法或者静态字段,但是,可以采用object关键字实现单例对象,具备和Java静态方法同样的功能。 ⚠️注意:在Scala中需要对值进行返回可以使用:1. return value;2. 直接写在方法的最后面一行。 object Person{ private var lastId = 0 def newPersonId()={ lastId += 1 lastId } } printf("first person id is %d.\n", Person.newPersonId()) printf("second person id is %d.\n", Person.newPersonId()) printf("third person id is %d.\n", Person.newPersonId()) // 我没有运行起来 出现在object中的变量和方法都是静态的,也就是多次调用原数据不会被清零。 伴生对象 Scala源代码编译后都会变成JVM字节码。实际上,在编译上面的源代码文件以后在Scala里面的class和object在Java层面都会被合二为一,class里面的成员成了实例成员,object成员成了static成员。 应用程序对象 每一个Scala应用程序都必须从一个对象的main方法开始。 object

【设计模式】——迭代器模式

為{幸葍}努か 提交于 2020-02-15 23:25:37
迭代器模式(Iterator) ,提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,或者你需要对聚集有多种方式遍历时,你就应该考虑用迭代器模式,为遍历不同的聚集结构提供如开始、下一个、是否结束、当前哪一项等统一接口。 #include <iostream> #include <vector> using namespace std; typedef string object; //Iterator迭代器抽象类 class Iterator { //用于定义得到开始对象、得到下一个对象、判断是否到结尾、当前对象等抽象方法 public: virtual object First()=0; virtual object Next()=0; virtual bool IsDone()=0; virtual object CurrentItem()=0; }; //Aggregate聚集抽象类 class Aggregate { public: virtual int Count() = 0; virtual void Push(const object& strValue)=0; virtual object Pop(const int nIndex)=0; virtual Iterator

java集合之vector容器

眉间皱痕 提交于 2020-02-15 16:06:21
学完 ArrayList 和 LinkedList 之后,我们接着学习Vector。 第1部分 Vector介绍 第2部分 Vector数据结构 第3部分 Vector源码解析(基于JDK1.6.0_45) 第4部分 Vector遍历方式 第5部分 Vector示例 转载请注明出处: http://www.cnblogs.com/skywang12345/p/3308833.html 第1部分 Vector介绍 Vector简介 Vector 是 矢量队列 ,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。 Vector 继承了AbstractList,实现了List;所以, 它是一个队列,支持相关的添加、删除、修改、遍历等功能 。 Vector 实现了RandmoAccess接口,即 提供了随机访问功能 。RandmoAccess是java中用来被List实现,为List提供快速访问功能的。在Vector中,我们即可以通过元素的序号快速获取元素对象;这就是快速随机访问。 Vector 实现了Cloneable接口,即实现clone()函数。它能被克隆。 和ArrayList不同, Vector中的操作是线程安全的 。 Vector的构造函数 Vector共有4个构造函数 // 默认构造函数

Java集合框架源码(四)——Vector

孤人 提交于 2020-02-15 16:05:52
第1部分 Vector介绍 Vector简介 Vector 是 矢量队列 ,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。 Vector 继承了AbstractList,实现了List;所以, 它是一个队列,支持相关的添加、删除、修改、遍历等功能 。 Vector 实现了RandmoAccess接口,即 提供了随机访问功能 。RandmoAccess是java中用来被List实现,为List提供快速访问功能的。在Vector中,我们即可以通过元素的序号快速获取元素对象;这就是快速随机访问。 Vector 实现了Cloneable接口,即实现clone()函数。它能被克隆。 和ArrayList不同, Vector中的操作是线程安全的 。 Vector的构造函数 Vector共有4个构造函数 // 默认构造函数 Vector() // capacity是Vector的默认容量大小。当由于增加数据导致容量增加时,每次容量会增加一倍。 Vector(int capacity) // capacity是Vector的默认容量大小,capacityIncrement是每次Vector容量增加时的增量值。 Vector(int capacity, int capacityIncrement) //