ES6、ES7、ES8学习笔记
ES6
学习文档:http://es6.ruanyifeng.com/
变量let和const
var的问题:可以重复声明,无法限制修改,没有块级作用域,只能用函数包裹限制作用域。
let和const:
1、不能重复声明。
2、都是有块级作用域,在{ }块内声明的,块外无效。
3、let是变量,可以修改。
4、const是常量,不能修改。
箭头函数
写法:
1、只有一个参数,( ) 可以省略。
2、只有一个return,{ } 可以省略。
function name() { } //普通函数
() => { } //箭头函数,去掉function,加上 =>
作用:
1、简写函数。
2、把父级的this传进里面,里面使用this就是在调用父级的this。
注意:ES6默认采用严格模式,因此this不会自动指向window对象,而箭头函数本身并没有this,所以this是undefined。如果还想用this,就不要用使用箭头函数。
rest参数(剩余参数)
收集不定数目的参数,必须放在最后一个参数位置。
名字可随便起,但必须要有 … 表示这是剩余参数。
这个rest参数提供的剩余参数是个数组。
function show(a, b, ...args){console.log(args); //输出 3, 4, 5
}
show(1, 2, 3, 4, 5);
以前的不定参arguments 不要再用了,因为只能提供类似数组的对象。
而剩余参数能显式的表明你想要获取参数,并提供一个真正的数组。
展开运算符(…)
一种简写,比如在数组前面加三个点,效果和直接写数组内容一样。
let arr = [1, 2, 3];
console.log(...arr); //输出 1,2,3
let arr2 = [...arr]; //...arr等价于1,2,3,所以这里数组arr2和arr相等
let arr3 = [...arr, 4, 5, ...arr2]; //可以随便组合写
对象也能展开。
还可以转换字符串为数组。
[...'hello'] // [ "h", "e", "l", "l", "o" ]
默认参数
function show(a, b = 5){ //直接在此设置默认参数console.log(a, b);
}
show(1); //输出 1,5
show(1, 2); //输出 1,2
解构赋值
let [a, b, c] = [1, 2, 3];
console.log(a, b, c); //输出 1, 2, 3let {x, y, z} = {x: 1, y: 2, z: 3};
console.log(x, y, z); //输出 1, 2, 3
1、左右结构必须一样,比如左右都是数组,参数和赋值的个数能对应。
2、右边必须是个合法的东西。
3、声明和赋值不能分开,必须写在一句话中。
解构的粒度可以随意调控,如下
let [json, arr, num, str] = [{a: 1, b: 2}, [1, 2, 3], 8, 'abc'];
console.log(json, arr, num ,str); //输出 {a: 1, b: 2}, [1, 2, 3], 8, "abc"let [{a, b}, [n1, n2, n3], num, str] = [{a: 1, b: 2}, [1, 2, 3], 8, 'abc'];
console.log(a, b, n1, n2, n3, num, str); //输出 1, 2, 1, 2, 3, 8, "abc"
数组
新增了一些数组的方法。
1、 map( ) 映射
能遍历数组中的每一个元素,并对每一个元素做操作。
可以在map函数的参数中定义一个函数,写要对数组中的每一个元素做什么操作,最后可以return返回结果。
let arr = [1, 2 , 3]
let double = arr.map(function(item){return item*2
}
let double2 = arr.map(item => item*2) //上面函数的简写
console.log(double) //输出 [2, 4, 6]let score = [22, 70, 61, 45]
let result = score.map(item => item >= 60? '及格' : '不及格')
console.log(result) //输出 ['不及格', '及格', '及格', '不及格']
2、reduce( ) 汇总
使每一个元素依次顺序相邻的运算求出一个值。
第一参数是保存临时的运算结果,第二参数是当前元素,第三参数是运算了第几次(从1开始算)。
比如下面求和。
let arr = [1, 2, 3, 4]
let sum = arr.reduce((tmp, item, index) => {console.log(tmp, item, index) //依次输出(1,2,1), (3,3,2), (6,4,3)return tmp + item
})
console.log(sum) //输出 10
第一次运算时没有临时结果,tmp的值是数组中第一个元素1,和第二个元素2相加等于3。
第二次运算时tmp就保存上一次运算结果3,和数组中第三个元素3相加,如此下去。
下面是求平均数例子。
let arr = [1, 2, 3, 4]
let sum = arr.reduce((tmp, item, index) => {if(index != arr.length - 1){ //如果不是最后一次就相加,否则除以数组长度求平均值。return tmp + item}else{return (tmp + item)/arr.length}
})
console.log(sum) //输出 2.5
3、filter( ) 过滤器
过滤数组中的元素。
可以在filter函数的参数中定义一个函数,写对数组的筛选条件,最后可以return返回过滤后结果。
let arr = [12, 4, 8, 9]
let result = arr.filter(item => (item % 3 === 0) ? true : false) //ture表示保留
//let result = arr.filter(item => item % 3 === 0) 这样简写也行
console.log(result) //输出 [ 12, 9 ]let arr = [{ name: '张三', age: 10 },{ name: '李四', age: 20 },
]
let result = arr.filter(json => json.age >= 20)
console.log(result) //输出 [ { name: '李四', age: 20 } ]
4、forEach( ) 循环迭代
迭代循环数组中的元素。
可以在forEach函数的参数中定义一个函数,写对数组中每个元素的遍历操作。
let arr = [12, 2, 7]
let result = arr.forEach((item, index) => console.log(item, index)) //依次输出(12, 0), (2, 1), (7, 2)
5、set( )、Array.from( ) 去重
set( ) 可以接收一个数组或者是类数组对象,自动去除其中的重复元素。
Array.from( ) 可以把类数组对象、可迭代对象转化为数组。
因为Set去重后返回的是一个对象,所以要配合Array.from转换为数组。
let arr = [1, 1, '1', '1', null, null , undefined, undefined, NaN, NaN]
console.log(Array.from(new Set(arr))) //输出 [ 1, '1', null, undefined, NaN ]
6、keys( )、values( )、entries( )、for…of、for…in
keys( )遍历下标,values( )遍历值,entries( )同时遍历下标和值。
for … in 遍历数组的下标 key,可以遍历对象,但不能与上面那三个方法一起使用。
for … of 遍历数组的值 value,不能遍历对象,常用于与上面三个方法一起使用。
let arr = ['a', 'b', 'c']
for (let i in arr) {console.log(i) //输出 0 1 2
}
for (let i of arr) {console.log(i) //输出 a b c
}
for (let i of arr.keys()) {console.log(i) //输出 0 1 2
}
for (let i of arr.values()) {console.log(i) //输出 a b c
}
for (let [key, value] of arr.entries()) {console.log(key + value) //输出 0a 1b 2c
}
//使用for in遍历对象
let json = { a: 12, b: 5, c: 7 }
for (let i in json) {console.log(i) //输出 a b c
}
startsWith( )、endsWith( )
检测字符串开头或结尾是否包含指定字符串,返回布尔值。
let str = 'abcd'
console.log(str.startsWith('ab')) //输出 true
console.log(str.endsWith('d')) //输出 true
console.log(str.endsWith('b')) //输出 false
字符串模板
使用反引号 `,${变量},可以拆行。
let a = 1
let str = `abc${a}`
console.log(str) //输出 abc1
面向对象
和Java很像,有class,extend,super,构造函数等之类的。
class User {constructor(name, pass) {this.name = namethis.pass = pass}showName() {console.log(this.name)}showPass() {console.log(this.pass)}
}let u1 = new User('abc', 111) //创建User的实例
u1.showName() //输出 "abc"
u1.showPass() //输出 111//继承
class VipUser extends User {constructor(name, pass, level) {super(name, pass) //必须写,表示继承父类this.level = level}showLevel(){ //子类新增的方法console.log(this.level)}showPass(){ //子类重写父类的方法(覆盖)console.log(123)}showPass(level){ //测试能不能重载console.log('这是子类重写父类的方法'+ level)}
}let v1 = new VipUser('red', 123, 1) //创建VipUser的实例
v1.showLevel() //输出 1
v1.showName() //调用继承父类的方法,输出 "red"
v1.showPass(2) //输出 这是子类重写父类的方法2
v1.showPass() //输出 这是子类重写父类的方法undefined,证明不能重载。
和JAVA的区别之一是不能重载函数,即调用相同函数名的函数时,根据你传递参数不同,调用相应的函数。
对象
1、简写对象的字面量
键值一样时可以简写,里面的函数可以简写, 去掉 :function
var a = 1, b = 2
let obj = {a: a, b: b, show:function(){}}
let obj = {a, b, show(){}} //简写
2、属性名的定义
obj.foo = true; // 常见
obj['a' + 'bc'] = 123; //ES6var obj = { // 常见foo: true,abc: 123
};
var obj = { // ES6[foo]: true,['a' + 'bc']: 123
};
例子:
var obj = {id0: '00',id1: '11',name0: '张三',name1: '李四'
};
// 把扁平化的对象结构化为两组对象,每组对象包含两组键值对
var arr = [];
for (let i = 0; i < 2; i ++) {const item = {id: obj[`id${i}`],name: obj[`name${i}`]};arr.push(item);
}
console.log(arr); //输出 [{id:'00',name:'张三'},{id:'11',name:'李四'}]
3、Object.is( ) 比较
相等运算符(==
)和严格相等运算符(===
)都有缺点。前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0。
JS缺乏一种运算,在所有环境中,只要两个值是一样的,它们就应该相等。该函数就是来弥补这一缺点。
console.log(Object.is('foo', 'foo')) // true
console.log(Object.is(+0, -0)) // false
console.log(Object.is(NaN, NaN)) // true
console.log(Object.is(null, null)) //true
console.log(Object.is(undefined, undefined)) //true
console.log(Object.is({ }, { })) // false,特殊例子
console.log(Object.is([ ], [ ])) // false,特殊例子
只有空对象或空数组间比较是false,不是同值相等的情况。
4、Object.assign( ) 合并
如果有同名属性,后面会覆盖前面。
const obj1 = { a: 1, b: 1 };
const obj2 = { b: 2, c: 2 };
const obj3 = { c: 3 };
const obj = Object.assign(obj1, obj2, obj3);
console.log(obj) //输出 { a: 1, b: 2, c: 3 }
5、Object.keys( ),Object.values( ),Object.entries( ) 对象转为数组
我都放在这里一起记。
这三个函数的分别是:
ES5方法,把对象的键返回成一个数组。
ES8方法,把对象的值返回成一个数组。
ES8方法,把对象自身返回成一个数组。
const obj = { a: 'str', b: 1 }
Object.keys(obj) // ["a", "b"]
Object.values(obj) // ["str", 1]
Object.entries(obj) // [ ["a", "str"], ["b", 1] ]
新增的两个方法的作用是方便把对象转成数组后,对值或者键值对遍历,例子如下:
let obj = {a: 1, b: 2, c: 3};
Object.keys(obj).forEach((key) => { //以前只有key方法console.log(key + ": " + obj[key]); //输出 a: 1, b: 2, c: 3
})
Object.entries(obj).forEach(([key, value]) => { //现在entries方法console.log(key + ": " + value); //输出 a: 1, b: 2, c: 3
})
7、Object.fromEntries( ) 数组转为对象
ES8方法,把键值对数组转为对象。
Object.fromEntries([ ["a", "str"], ["b", 1] ]) // { a: "str", b: 1}
模块
引入:
let { stat, exists, readFile } = require('fs') //以前
import { stat, exists, readFile } from 'fs' //ES6
暴露:
module.exports = { stat, exists, readFile } //以前
export default { stat, exists, readFile } //ES6
Promise
Promise用来解决地狱回调问题,能把异步操作代码写成同步样子。
Promise对象是个构造函数,通过new创建一个Promise实例,在这实例中有个then方法,看下面例子使用。
// 传统写法
step1( value1 => {step2( value1, value2 => {step3(value2, value3 => {step4(value3, value4 => {// ...});});});
});
// Promise 的写法
new Promise(step1).then(step2).then(step3).then(step4);
简单来说就是这样:
function f1(resolve, reject) {// 异步代码...
}
var p1 = new Promise(f1);
p1.then(f2).then(f3).then(f4)
// f1的异步操作执行完成,就会执行f2,依次下去
每当new一个Promise实例时,就会立刻执行实例中的异步操作,所以要用函数包裹new的过程,来控制什么时候执行。
Promise实例中还自带两个函数,resolve为成功回调函数,reject为失败回调函数。
读取文件例子如下:
const fs = require('fs') //引入读取文件模块
getFile = path => { //把创建Promise过程放在函数里,按需执行return new Promise( (resolve, reject) => {fs.readFile(path, 'utf-8', (err, data) => {if(err) return reject(err) //如果有err就返回执行失败回调函数resolve(data) //否则就执行失败回调函数})})
}
getFile('1.txt') //调用读取文件函数,由上面函数代码可知,生成第一个promise实例
.then( data => { //这里.then就是运行上面生成的第一个promise实例console.log('成功回调函数' + data)return getFile('2.txt') //下面的.then就是在运行这里return的第二个promise实例
}, err => {console.log('失败回调函数' + err)return getFile('2.txt') //如果前面的promise出错,想让后面的promise继续运行,就在成功和失败回调函数都返回promise实例
})
.then( data => {console.log('成功回调函数' + data)return getFile('3.txt')
})
.then( data => {console.log('成功回调函数' + data)
})
如果前面的promise出错,不想让后面的promise运行,就不要写失败回调函数,同时在最后面加如下代码:
.catch( err => {console.log(err) //promise如果出错,会直接跳到这里运行出错处理代码
})
Promise.all(promiseArray)方法
1、将多个Promise对象实例包装,生成并返回一个新的Promise实例。
2、promise数组中所有的promise实例都变为resolve(成功)的时候,该方法才会返回,并将所有结果传递results数组中。
3、promise数组中任何一个promise为reject的话,则整个Promise.all调用会立即终止,并返回一个reject的新的promise对象。
var p1 = Promise.resolve(1)
var p2 = Promise.resolve(2)
var p3 = Promise.resolve(3)
Promise.all([p1, p2, p3]).then( results => {console.log(results) //输出 [1, 2, 3]
}, err => {console.log(err)
})
Promise.all(promiseArray)方法
1、用法和上面一模一样。
2、哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。
3、了解即可。
Generator生成器函数
普通函数,一路到底。
1、 generator函数,中间可以停,到哪停呢,遇到yield就会停。
2、调用generator函数,会生成一个generator对象,此时函数还未运行。
**3、**generator对象有个next()方法,调用该方法就会运行generator函数。
4、generator函数遇到 yield 会停止时,想要运行就继续用next()启动执行。
5、 在函数名前加个 *
就是generator函数,不能使用箭头函数。
背后实际上生成多个小函数,实现走走停停。
function *show() {console.log('1')yieldconsole.log('2')
}
let genObj = show2() //用变量接住generator函数创建的generator对象
genObj.next() //输出 1
genObj.next() //输出 2
genObj.next() //最后了,没有结果输出
6、yield 只能在Generator函数内使用。
7、yield 既可传参,又可以返回。
8、第一个next()只用来启动,传参无效。
传参例子如下
function * show() {console.log('1')var a = yieldconsole.log('2')console.log(a)
}
var gen = show()
gen.next() //输出 1
gen.next() //输出 2 undefined,因为没有传参,yield没有返回值
var gen = show()
gen.next(10) //输出 1 第一个next只用来启动,传参没用
gen.next(20) //输出 2 20
返回例子如下
function* show() {yield 10yield 20
}
var gen = show()
console.log(gen.next()) //输出 { value: 10, done: false }
console.log(gen.next()) //输出 { value: 20, done: false }
console.log(gen.next()) //输出 { value: undefined, done: true }
value是每一段小函数的yield值,done表示整个函数完成了没有。
因为最后一段函数是没有yield的,所以输出为undefined。
如果想要最后有值输出,在函数最后return一个值就行。
generator函数的作用:把异步操作写成同步代码,如下所示:
runner(function * () {let data1 = yield $.ajax({url: 'data1'})let data2 = yield $.ajax({url: 'data2'})let data2 = yield $.ajax({url: 'data3'})
})
利用yield会暂停,等上一次请求完,下一次才能请求。写成同步代码的样子,非常好看。
promise 只适合一次读一组数据,不适合有逻辑性的异步操作。要是一次读了一组数据,还要进行逻辑判断再读不同的数据,就比回调写法还糟糕。
generator适合有逻辑性的异步操作,这是比promise 好的地方是。例子如下,写法完全和平时普通写代码一样。
runner(function * () {let data = yield $.ajax({url: 'data '})if (data .type == 'VIP') {let items = yield $.ajax({url: 'dataVip '})} else {let items = yield $.ajax({url: 'dataNormal '})}
})
在Node.js中,用同步方式写异步,请求数据库:
server.use(function * () {let data = yield db.query(`select * from user_table`)this.body = data
})
ES7
1、幂运算
用法:3 ** 2 ,这是3的2次方。
由于是运算符,所以可以和 +=一样的用法
let b = 2
b **= 7 //2的7次方,9
2、Includes( )
检测数组是否包含某个东西。第一参数是要找的内容,第二参数是找的起点位置,没有第二参数就默认从头开始找。
let arr = ['a', 'b', 'c']
console.log(arr.includes('a')) //输出 true
console.log(arr.includes('a', 1)) //输出 false
ES8
padStart( )、padEnd( )
字符串补全长度的功能,如果某个字符串不够指定长度,会在头部或尾部补全。
第一参数是要补至多少位,第二参数是如果不够位数要补什么,可以不写。
console.log('ab'.padStart(4, '0')) //输出 00ab
console.log('ab'.padEnd(4, '0')) //输出 ab00
如果不写第二参数,可以用来做对齐的作用,例子如下:
console.log('0.00')
console.log('10,000.00')
console.log('250,000.00')
输出结果如下:
0.00
10,000.00
250,000.00
使用padStart( )在字符串前面填充至指定位数20:
console.log('0.00'.padStart(20))
console.log('10,000.00'.padStart(20))
console.log('250,000.00'.padStart(20))
输出结果如下,全部右对齐了:
0.0010,000.00250,000.00
使用padEnd()可以在字符串后面填充至指定位数20:
console.log('0.00'.padEnd(20) + '0.00' )
console.log('10,000.00'.padEnd(20) + '10,000.00' )
console.log('250,000.00'.padEnd(20) + '250,000.00')
输过结果如下,因为前面全部是20位,所以后面的数字对齐了:
0.00 0.00
10,000.00 10,000.00
250,000.00 250,000.00
Async/Await
Async函数是用来替代Generator函数的,所以和Generator函数非常相似。
1、 async可以使用箭头函数,generator却不可以。
2、async放在函数名最前面来修饰,这generator的 * 类似。
3、await只能用在async函数中,道理和yield只能在generator中使用一样。
4、直接调用就行,async并不是像generator 一样走走停停,所以和普通函数使用方式一样。
最基础的例子,如图所示,和以前几乎一样:
async function show() {console.log(1)awaitconsole.log(2)
}
show() //输出 1 2
async函数执行异步操作写法:
async () => {let data1 = await $.ajax({url: 'data1'})let data2 = await $.ajax({url: 'data2'})let data2 = await $.ajax({url: 'data3'})
}
5、不用依赖外部,虽然和以前Generator函数使用方式几乎一样,但不用自己写一个runner函数来使用了,已经原生封装写好了。
例子,异步操作2需要异步操作1的结果,异步操作3需要异步操作1和2的结果:
const makeRequest = async () => {const value1 = await promise1()const value2 = await promise2(value1)return promise3(value1, value2)
}
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- linux公社大量免费的在线android资料
2011年linux数据库的android在线分享linux公社:开源公社 本文撰写:杨凯专属频道 下载如需密码,详见博客案例:点击我去查看密码 2011年9月12日 21:39 <目录> Android3D 游戏开发教程2011年10月19日 19:53 <目录> AndroidSDK 2.2 + Eclipse开发环境…...
2024/5/4 9:09:17 - 【TTS】关于语音合成技术整理
最近找到的一些关于TTS的资料TTS(Text To Speech),即语音合成技术,是一种把文本信息转换成语音信号的技术,在汽车导航、机器人以及很多语音软件中都有广泛的应用。几十年的发展,TTS技术已经非常成熟,国际IT巨头们大都进行过专业攻关。对于APPLE DEVELOPER而言,不像Andr…...
2024/5/6 13:45:37 - heritrix 3.2.0 下载
由于archive.org屏蔽,编译完成版本 http://builds.archive.org/maven2/org/archive/heritrix/heritrix/3.2.0/ 无法下载。 现将dist版本放到github,方便大家下载学习github地址如下: https://github.com/xiamizy/heritrix-package heritrix-3.2.0-dist.tar.gz大小: 31 KB 查…...
2024/4/12 17:34:25 - 简明Python教程学习笔记_6_面向对象编程
廖雪峰官网 面向对象编程 廖雪峰官网面向对象高级编程简介类和对象是面向对象编程的两个主要方面。类创建一个新类型,而对象这个类的 实例 。这类于你有一个int类型的变量,这存储整数的变量是int类的实例(对象)。类(Class)::用来描述具有相同的属性和方法的对象的集合。…...
2024/4/16 12:19:39 - TTS语音合成的实现
在.net中要实现语音合成可以利用微软的语音技术,利用微软的这一技术,需要安装Microsoft Speech SDK和语音库,安装之后,调用com中的Microsoft Speech Object Library,即可实现语音合成。 MicrosoftSpeech SDK 5.1的下载地址:SDK 5.1 下载, 这里SDK 5.1 语言包,这里SDK 5…...
2024/5/6 11:39:28 - Android Studio中配置及使用OpenCV示例(一)
Android Studio配置及使用OpenCV前言:最近在做项目移植,项目较大,在Eclipse中配置的Jni及OpenCV环境没任何问题,但是迁移到Studio中就问题一大堆,网上也找了一些资料参考及学习,很感谢前人留下的总结及经验。关于在AS中使用jni及配置OpenCV也研究了一段时间,怕日后忘记便…...
2024/4/18 10:47:14 - gulp使用心得(安装编译es6文件)
1.全局安装gulp输入npm install gulp -g命令,然后用 gulp -v查看是否安装完成;2.新建package.json文件进入你的本地项目(我的是F:\shijiebei\apps\Apps.Web),输入npm init命令,其中 name, version, description必填,其他无所谓,填完后保存,在testgulp项目下就会生成pa…...
2024/4/19 4:35:28 - CSS样式字体设置失效,呈现乱码
1.问题: CSS文件中已设置了标签的属性font-family:"微软雅黑",但是字体的显示的效果却是宋体,查看一下网页源代码,发现设置的字体为乱码。 乱码显示如font-family:"���ź�" ; 2.解决方法: 字体设置不要用中文:如font-family:"微软雅黑&qu…...
2024/4/13 2:19:18 - Heritrix源码之 处理链
heritrix源码真不是一般的复杂,但是一点一点解析的话还是能看懂的处理链是heritrix里面最重要的地方之一,对页面的操作都通过处理链完成,其配置的灵活程度和通用性十分强大。别的程序也可以借鉴哦~~~ProcessorChainList 处理器链集合,包含多个处理器链,每个URL都会有这样一个…...
2024/4/12 17:34:15 - Python:TTS语音合成技术,市场各大平台对比以及实现
前景提要:在线的实时合成TTS技术,巴拉巴拉... 此处省略3千字 市场的TTS平台:讯飞科技,百度智能语音开放平台,阿里云,腾讯云,思必驰,捷通华声(灵云TTS的合成简单来说就三大步: 1️⃣创建应用 2️⃣发起请求 3️⃣解析音频数据,合成音频文件咱们废话不说一个一个来: 一…...
2024/5/6 9:11:32 - python简明教程学习笔记2--函数
定义:def func(x): 可以使用同一个global语句指定多个全局变量。例如globalx, y, z。 默认参数值:def say(message, times = 1):只有在形参表末尾的那些参数可以有默认参数值。 return语句 除非你提供你自己的return语句,每个函数都在结尾暗含有returnNone语句。 Pass语句…...
2024/4/18 15:40:09 - Android属性动画完全解析(上),初识属性动画的基本用法
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation)。逐帧…...
2024/4/19 18:14:57 - ES6标准--Great Progress
这三个月我又自学了jQuery库和ES6语法,敲了大量的代码去练习。因为需要一边写论文一边自学这些前端的知识,所以进度可能有点慢,但我觉得能一直坚持每天学一点也是一种毅力,在这里想分享一下看完这两者的心得体会。jQuery库---现在已经不流行强调的理念是write less,do more…...
2024/4/17 10:38:13 - 曾经的中国之光「北大方正」破产了...
点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!记者 | 乔麦来源 | 中国基金报(chinafundnews)体量超3000亿的中国最大校企方正集团,债务危机迎来新进展。日前,方正集团旗下6家上市公司齐发提示性公告表示,北京银行申请对方正集团重整。…...
2024/5/6 7:12:26 - heritrix1.14升级到3.1
由于本人正在准备将heritrix1.14升级到3.1 ,觉得这篇文章挺有用的,于是就cp一下,记录下来,非本人所原创,下面是原创的文章:网上已经有几篇Heritrix 1.14版本的Eclipse搭建的文章,说的比较详细。本人下载了Heritrix 3.1,该版本相对Heritrix 1.14版本变化已经较大,在研究…...
2024/5/8 19:11:42 - 目前自然语音合成(TTS)进度一点见解
目前实验模型wavenet,parallel wavenet, tacotron, deep voice 3, clarinet1. 需要preemphasis来产生更好的音频来自社区国人tacotron2的commit2. 转换到mu-law域可以stabilize训练过程,加速converge, 但是好像对最优解生成的音频质量没什么影响,所以现在训练还是raw3. 最…...
2024/5/6 11:25:56 - Python--模块(Python简明教程)
模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。使用sys模块$ cat using_sys.py #!/usr/bin/env python # _*_ coding: utf-8 _*_ # wul@2013-02-18 16:58:54 import sys print The command line argument…...
2024/4/9 10:53:45 - ES6 map和set的区别
set是一种关联式容器,其特性如下:set以RBTree作为底层容器 所得元素的只有key没有value,value就是key 不允许出现键值重复 所有的元素都会被自动排序 不能通过迭代器来改变set的值,因为set的值就是键map和set一样是关联式容器,它们的底层容器都是红黑树,区别就在于map的值…...
2024/4/12 17:35:00 - Android录屏功能的实现
最近做一个Android开发的项目用到了录屏的功能,开始查阅了一些资料和博客,基本上都是在讨论ROOT的。直到后来在github上看到一个比较新的代码,才恍然发现,Android 5.0时候开放了一个新的接口---android.media.projection,一下子让这个问题变得简单了。所以说查阅资料也该注…...
2024/4/9 10:53:43 - Heritrix总结及消重算法初探
好久没有更新博客了。最后一次更新居然已经是一个月以前的事了。忍不住问自己,5月份都做了什么?编程珠玑看了几篇,但是没有像之前那样仔细去琢磨。数据压缩好像就停留在SPIHT算法的理解上了。花了两个星期搞了信息检索的作业,老实说,还没有做完。 我这部分的作业内容差不多…...
2024/4/12 17:35:05
最新文章
- BigInteger和BigDecimal类
BigInteger 和 BigDecimal 介绍 应用场景 BigInteger适合保存比较大的整型BigDecimal适合保存精度更高的浮点型(小数) BigInteger 和 BigDecimal 常见方法 1,add 加2,subtract 减3,multiply 乘4,divide…...
2024/5/10 11:23:14 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/9 21:23:04 - Linux nsenter命令全面解析
Linux nsenter命令是一个强大的工具🛠️,用于进入到已存在的命名空间(Namespace)中执行命令。由于Linux的命名空间技术是构建容器技术的基础,nsenter因此成为了容器管理和调试中不可或缺的工具🐳。本文将从…...
2024/4/30 2:51:34 - 分享一个Python爬虫入门实例(有源码,学习使用)
一、爬虫基础知识 Python爬虫是一种使用Python编程语言实现的自动化获取网页数据的技术。它广泛应用于数据采集、数据分析、网络监测等领域。以下是对Python爬虫的详细介绍: 架构和组成:下载器:负责根据指定的URL下载网页内容,常用的库有Requests和urllib。解析器:用于解…...
2024/5/9 21:30:42 - 字符串匹配算法之BF与KMP算法
目录 BF算法(暴力匹配算法) KMP算法 核心思想: next数组 next数组的优化 BF算法(暴力匹配算法) #include <assert.h> int BF(const char* str, const char* sub) {assert(str ! NULL && sub ! NULL);if (str NULL || sub NULL){return -1;}int…...
2024/5/9 7:34:59 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/8 6:01:22 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/9 15:10:32 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/9 4:20:59 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/8 20:48:49 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/8 19:33:07 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/8 20:38:49 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/10 10:22:18 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/9 17:11:10 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57