1.概述 ES5 的对象属性名都是字符串,这容易造成属性名的冲突.比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突.如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突.这就是 ES6 引入Symbol的原因. ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值.它是 JavaScript 语言的第七种数据类型,前六种是:undefined.null.布尔值(Boolean)…
1.数值 1.1 .JavaScript数值的特点 不区分整数值和浮点数值. 所有数值均用浮点数值表示. 采用IEEE-754标准定义的64位浮点数格式表示. 整数在实际操作时(如数组索引),则是基于32为整数. 1.2. 整数直接量 除十进制外,JavaScript能识别十六进制(以0x或0X为前缀).二进制(以0b或0B为前缀)和八进制(以0o或0O为前缀) 如: 0xff -----> 255, 0b1001 ----> 9, 0o12 -----> 10 在ES6的严格模式下,禁…
1.导出export,导入import组合 知识点1:导出export lesson2.js export let A=; export function test(){ console.log('test'); } export class Hello{ test(){ console.log('class'); } } 知识点2:导入import(名称要一样对应,export名字叫test,那么import导入的时候就需要用同样的名字test来导入) index.js import {A,t…
一:Class ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板.通过class关键字,可以定义类. 定义“类”的方法的时候,前面不需要加上function这个关键字,直接把函数定义放进去了就可以了.另外,方法之间不需要逗号分隔,加了会报错. 创建类对象:使用new命令即可. constructor方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法.一个类必须有constructor方法,如果没有显式定义,一个空的constructor方法会被默…
字符串String 1.字面量 需要注意的地方: 由单引号或双引号括起来的字符序列. 单双引号可以嵌套,由最外围引号定界字符串 字符串字面量可以拆分成数行,每行必须以反斜线(\)结束,且反斜线都不计入字符串的内容. 在书写HTML的JS代码时,要注意与HTML代码混合搭配使用引号. 实例代码: let str1 = "I have a dog" let str2 = "My 'dog' likes \ eating meat" console.log(str1) /…
Boolean 1.需要注意的地方: 取值:true false 对于值为空字符串,0,-0,NaN,Null,undefined,false的布尔对象,它都会有一个初始值false.对于其它的值如"false",[]等都会建立一个初始值是true的对象. 不能把基本类型中true或false和值为true或false的对象搞混淆了. 2.Boolean 的转化: 1.使用Boolean( )转换,不要使用new Boolean()方式转换 var a = "123"…
一.变量,对象,引用: 1. 变量: 2. 对象:均包含了一个头部信息,有以下两部分内容 a.对象的数据类型, b.引用计数器:纪录当前引用货指向该对象的数量,一旦计数器被清零,该对象的内存空间就会被回收. 3. 引用:关联变量和对象之间的指针, a=3 二.共享引用,新创建对象: 1. a=3 b=a a='spam' a变了,b还等于3,因为b指向的对象没有发生变化,b的指针也没有变. 2.  a=3 b=a a=a+2 b是什么情况? Python里给一个变量赋新值,并不会改变原有的对象,…
[Unity Shaders]学习笔记——SurfaceShader(七)法线贴图 转载请注明出处:http://www.cnblogs.com/-867259206/p/5627565.html 写作本系列文章时使用的是Unity5.3. 写代码之前: 当然啦,如果Unity都没安装的话肯定不会来学Unity Shaders吧? 阅读本系列文章之前你需要有一些编程的概念. 在VS里面,Unity Shaders是没有语法高亮显示和智能提示的,VS党可以参考一下这篇文章使代码高亮显示,也可以下载…
前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生成实例对象的传统方法是通过构造函数来创建的. function Person (name,age){ this.name = name; this.age = age; } Person.prototype.say=function(){ // 不能使用箭头函数(我差点忘记),因为 箭头函数没有pr…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二) 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 学习目标 理解本章中针对命令队列的更新(不再需要每帧都flush命令队列),提高性能: 理解其他两种类型的根信号参数类型:根描述和根常量: 熟悉如何通过程序方法来绘制通用的几何形状:盒子,圆柱体和球体: 学…
变量的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. 数组的解构赋值 以前,为变量赋值,只能直接指定值: 1 2 3 var a = 1; var b = 2; var c = 3; ES6允许写成下面这样: 1 var [a, b, c] = [1, 2, 3]; 这种写法属于"模式匹配",只要等号两边的模式相同,左边的变量就会被赋予对应的值,如果解构不成功,变量的值就等于undefined,下面是一些使用嵌套数组进行解构的例子: 1 2 3…
ES6学习笔记(2019.7.29) 目录 ES6学习笔记(2019.7.29) let和const let let 基本用法 let 不存在变量提升 暂时性死区 不允许重复声明 块级作用域 级作用域 ES6的块级作用域 块级作用域与函数声明 const 基本用法 本质 顶层对象 解构赋值 数组的解构 基本用法 默认值 对象的解构 基本用法 默认值 注意点 字符串的解构 数值布尔值的解构 函数参数的解构 圆括号问题 不能使用圆括号的情况 可以使用圆括号的情况 用途 for.for in.for…
作者:Grey 原文地址:Redis学习笔记八:集群模式 前面提到的Redis学习笔记七:主从复制和哨兵只能解决Redis的单点压力大和单点故障问题,接下来要讲的Redis Cluster模式,主要是用来解决Redis的单点容量问题. 如何来解决Redis单点容量问题呢? 如果数据可以拆分,我们可以让不同业务的客户端打到不同的Redis实例中. 如果数据不能拆分,我们有如下方式: 方案2-1 modula方式 可以通过Hash加上取模的方式来定位打到哪个Redis实例中. 这种方式的弊端在于:模…
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小工程,再用一种简单的方法把这些小工程连接在一起. 这有可能导致两个问题: 一方面js代码变得很臃肿,难以维护 另一方面我们常常得很注意每个script标签在html中的位置,因为它们通常有依赖关系,顺序错了可能就会出bug 在es6之前为解决上面提到的问题,我们得利用第三方提供的一些方案,主要有两种…
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; val_2 = val_2 || 20; return console.log(val_1 + val_2); } add(); 而现在可以这么做 function add_1(val_1 = 5,val_2 = 10){ return console.log(val_1 + val_2); }…
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = function(){ console.log("say Hi!"); } document.getElementById("click_2").onclick = () => { let a = 1; let b = 2; console.log(a + b);…
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般会看到以下几种格式的文件: msi, egg, whlmsi文件:Windows系统的安装包, 在Windows系统下可以直接双击打开, 并按提示进行安装egg文件:setuptools使用的文件格式, 可以用setuptools进行安装whl文件:wheel本质上是zip文件, 它使用.whl作为…
Go语言学习笔记八: 数组 数组地球人都知道.所以只说说Go语言的特殊(奇葩)写法. 我一直在想一个人参与了两种语言的设计,但是最后两种语言的语法差异这么大.这是自己否定自己么,为什么不与之前统一一下. 声明数组 var variable_name [SIZE] variable_type 例子: var x [10] int 初始化数组 var x = [5] int {1, 2, 3, 4, 5} var y = [...] int {1, 2, 3, 4, 5} 初始化数组中 {} 中的元…
createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数原型: int createTrackbar(const String& trackbarname, const String& winname, int* value, int count, TrackbarCallback onChange = , ); 第一个参数,const strin…
ES6学习笔记:块级作用域 作用域分类 全局作用域 局部作用域 块级作用域 全局作用域示例 var i=2; for (var i = 0; i < 10; i++) { } console.log(i);//10 这里就出现了意料之外的结果,此种原因是变量提升造成过的 局部作用域示例 !(function () { console.log(b);//undefined var b = 2; })() 为什么会输出undefined,而不是报错? 此种也是变量提升造成的意料之外的结果,上面代码等…
目录 go微服务框架kratos学习笔记八(kratos的依赖注入) 什么是依赖注入 google wire kratos中的wire Providers injector(注入器) Binding Interfaces go微服务框架kratos学习笔记八(kratos的依赖注入) 笔记二提过依赖注入,和如何生成,但没有细讲,本文来简单看看kratos的依赖注入. 什么是依赖注入 来看一个小程序, 创建一个小程序模拟带有问候的事件 我们将创建三个结构类型: 1)为迎宾员创建消息 message…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo indigo PCL例子以及xtionpro live pcl --$ roslaunchrobot1_description display.launch model:="`rospack findr…
为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口(Interface),yield则是生成器函数中表示 返回 或 继续 执行的关键字. 弄清楚这两个概念后,先看一个例子: function* fun(val) { yield 1*val; yield 2*val; yield 3*val; yield 4*val; return 5*val; }…
学习参考地址1  学习参考地址2 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015:也就是说,ES6就是ES2015. let, const, class, extends, super, arrow functions, template string, destructuring, default, rest arguments 这些是ES6最常用的几个语法,基本上学会它们,我们…
前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>,今天主要来分享关于如何用js面向对象的思维来实现tab栏的一些相关的功能. 要实现的功能分析 点击tab栏可以切换效果 点击+号,可以添加tab项和内容项 点击X号,可以删除当前的tab项和内容项 点击tab文字或者内容项文字,可以修改里面的字体内容 抽像对象: Tab对象 (增删改查功能)实现功能效果如下图…
作者:Grey 原文地址:Java IO学习笔记八:Netty入门 多路复用多线程方式还是有点麻烦,Netty帮我们做了封装,大大简化了编码的复杂度,接下来熟悉一下netty的基本使用. Netty+最朴素的阻塞的方式来实现一版客户端和服务端通信的代码,然后再重构成Netty官方推荐的写法. 第一步,引入netty依赖包. <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</a…
JS第七种数据类型Symbol详解 点击打开视频讲解更加详细 一.什么是Symbol? Symbol是ES6中引入的一种新的基本数据类型,用于表示一个独一无二的值.它是JavaScript中的第 七种数据类型,与undefined.null.Number(数值).String(字符串).Boolean(布尔值). Object(对象)并列. Symbol特点: Symbol的值是唯一的,用来解决命名冲突问题 Symbol值不能与其他数据进行运算 Symbol定义的对象属性不能使用for...in…
可直接访问有道云笔记分享链接查看es6所有学习笔记 http://note.youdao.com/noteshare?id=b24b739560e864d40ffaab4af790f885…
学习了es6语法的symbol类型,整理笔记,闲时复习. Symbol 是es6新增的第七种原始数据类型(null,string,number,undefined,boolean,object),是为了在对象中对属性名滥用而导致的冲突问题. ps: 既然是数据类型,不是对象,那么就不能用new命令,因此不能添加属性 let a = Symbol('a') console.log(a) // Symbol(a) console.log(typeof a) // symbol 简单来说:一旦声明一个…
20145230 <Java程序设计>第7周学习总结 教材学习内容 Lambda语法概览 我们在许多地方都会有按字符串长度排序的需求,如果在同一个方法内,我们可以使用一个byName局部变量.如果是一个类中多个方法间要共享,那就使用一个byName的数据成员.因为byName要参考的实例没有状态问题,因为声明为static比较适合,如果要在多个类之间共享,那么就设定为public static.类似地,相对名称按照字典顺序排序,但忽略大小写差异,也不用再通过StringOrder的static…