ES6语法(一)
对于ES6中的一些基础语法,包括对数组/对象/函数/字符串的操作,chroem已经支持了这些语法
// var a = '你'
// console.log(a.length)
let a = 'nihao'
console.log(a)
let str = "string"
console.log(str.startsWith('i'))
{
let name = "list";
let info = "hello world";
let m = `i am ${name},${info}`;
console.log(m)
}
{
// 例如日期补0
console.log('1'.padStart(2,'0'))
console.log('1'.padEnd(2,'0'))
}
{
let user = {
name: "list",
info: "hello world"
}
console.log(abc`i am ${user.name},${user.info}`)
function abc(s,v1,v2) {
console.log(s,v1,v2);
return s + v1 + v2;
}
}
{
console.log(String.raw`hi\n${1+2}`)
console.log(`hi\n${1+2}`)
} {
console.log(Number.isFinite(15))
console.log(Number.isFinite(NaN))
console.log(Number.isFinite('true'/0))
console.log('NaN',Number.isNaN(NaN))
} {
console.log(4.1,Math.trunc(4.1)) //
console.log(4.9,Math.trunc(4.9)) //
}
{
console.log('-5',Math.sign(-5)) //-1
console.log('0',Math.sign(0)) //
console.log('5',Math.sign(5)) //
console.log('5',Math.sign('5')) //
} /*--数组扩展--*/
{
let arr = Array.of(3,4,7,9,11)
console.log(arr)
}
{
let p = document.querySelectorAll('p')
let pArr = Array.from(p)
pArr.forEach((item)=>{
console.log(item.textContent)
})
} {
// 填充数组
console.log([1,'a',undefined].fill(7))
console.log([1,'a',undefined].fill(7,1,3))//fill内参数,第一个为替换的数值,第二和第三为起止位置
} {
for (let index of ['11','22','32'].keys()) {
console.log('keys',index)//返回数组下标
}
for (let value of ['11','22','32'].values()) {
console.log('keys',value)//返回数组内的值
}
for (let [index,value] of ['11','22','32'].entries()) {
console.log('keys',index,value)//返回数组值和下标
}
}
{
console.log([1,2,3,4,5].copyWithin(0,3,4)) //第一个参数起始位置,第二个和第三个是要替换的数值起止位置
}
{
console.log([1,2,3,4].find((item) => {
return item > 3//只找到符合条件的第一个值
}))
console.log([1,2,3,4].findIndex((item) => {
return item > 3//只找到符合条件的第一个下标
}))
}
{
console.log([1,2,NaN].includes(1))//类似字符串中的indexOf
} /*----函数扩展-----*/
{
function test(x, y = "hello") {
console.log(x, y)
}
test('你好')//如果没有传入y值则默认为‘hello’
}
{
let x = 'test';
function test2(x, y=x) {
console.log(x,y)//作用域,在开始已经定义了x值,y=x,y值取函数中的参数值
}
test2('world')
}
{
function test3(...arg) {
for (let v of arg) {
console.log(v)//rest参数
}
}
test3(1,2,3,4,'a')
}
{
let a = [1,2,3]
let b = [4,5,6]
console.log([...a,...b])//数组合并
}
{
let arrow = v => v*2;
console.log(arrow(3))
}
{
function tail(x){
console.log(x)
}
function fx(x) {
return tail(x)//伪调用,提升性能
}
fx(123)
}
/*----对象扩展-----*/
{
let o = 1;//简单表示法
let k = 2;
let es5 = {
o: o,
k: k
}
let es6 = {
o,
k
}
console.log(es5,es6)
// 对象内函数
let es5_methods = {
hello: function(){
console.log("hello")
}
}
let es6_methods = {
hello(){
console.log('hello')
}
}
}
{
// 属性表达书
let a = 'b';
let es5_obj = {
a: 'c'
}
let es6_obj = {
[a]: 'c'//在es6中的key值是可以变的,可以是一个变量
}
console.log(es6_obj)
}
{
// 新增APi
console.log(Object.is('abc','abc'),'abc' === 'abc') console.log(Object.assign({a:'a'},{b:'b'}))//拷贝,第一个参数是要拷贝的对象上,第二个参数是要拷贝的值 }
ES6语法(一)的更多相关文章
- es6语法重构react代码
1.使用React.Component创建组件,需要通过在constructor中调用super()将props传递给React.Component.另外react 0.13之后props必须是不可变 ...
- vue 2.0 无法编译ES6语法
# vue2.0 webpack 无法编译 ES6 语法 之前在使用 vue 1.x 时用 vue-loader@8.0.0 版本可以正常打包vue的代码,包括ES6语法也能正常转为ES5语法,但是当 ...
- 把JavaScript代码改成ES6语法不完全指南
目录 * 核心例子 * 修改成静态变量(const)或块级变量(let) * 开始修改 * 疑问解释(重复定义会发生什么) * 疑问解释(let的块级作用域是怎样的) * 疑问解释(const定义的变 ...
- 让intellij idea 14 支持ES6语法
用eclipse做前端开发,用到了webpack,结果各种依赖导致软件卡的一比,简直不能动!虽然在同事的帮忙下,修改了一下配置,但仍然卡的没脾气.改用intellij idea 14解决了卡的问题,但 ...
- .vue文件在webstorm中es6语法报错解决方法
1 语法支持es6设置 Preferences > Languages & Frameworks > JavaScript 把 Javascript Language versio ...
- webpack打包不识别es6语法的坑
今天Vue项目npm run build 后webpack,报错uglifyjs,自己研究了一下,翻译过来,意思是不识别项目中写的高级语法,这里要把项目里es6语法转es5让浏览器识别, 也就是web ...
- ES6语法的学习与实践
ES6是JavaScript语言的新一代标准,是ECMAScript的第六个版本,加入了很多新的功能和语法,在很多框架,如在使用Vue,React等框架的项目中一般都采用ES6语法来编写的,下面对经常 ...
- 如何让浏览器支持ES6语法,步骤详细到小学生都能看懂!
为什么ES6会有兼容性问题? 由于广大用户使用的浏览器版本在发布的时候也许早于ES6的定稿和发布,而到了今天,我们在编程中如果使用了ES6的新特性,浏览器若没有更新版本,或者新版本中没有对ES6的特性 ...
- Webstorm添加新建.vue文件功能并支持高亮vue语法和es6语法
转载:https://blog.csdn.net/qq_33008701/article/details/56486893 Webstorm 添加新建.vue文件功能并支持高亮vue语法和es6语法 ...
- vue-i18n使用ES6语法以及空格换行问题
1.运行报错 报错使用了不恰当的exports Uncaught TypeError : Cannot assign to read only property 'exports ' of objec ...
随机推荐
- 解决select下拉框禁用(设置disabled属性),后台获取值为空
如果下拉框设置disabled属性后,提交表单到后台,后台获取的下拉框的值为空,以下有三种解决获取不到下拉框选项值的方法. 有下拉框html如:<select name="select ...
- [经验交流] k8s mount 文件到容器目录
docker 的 volume 可以 mount 单个文件(比如单个配置文件)到容器目录.同时保留原目录的内容.放到 k8s 中,结果却变成了这样:k8s 的 volume 把文件mount 到容器目 ...
- Linux中查看端口占用情况
1.lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口的使用情况: # lsof -i:8000 2.netstat -tunlp | grep 端口号,用于查看指定的端口号的进 ...
- Spring Cloud 2.x-前言
Spring Cloud Spring Boot 简介 模块介绍 文章列表 简介 微服务已经成为企业开发的标配,阿里的Dubbo已经被企业大规模使用,Spring Cloud作为后起之秀,同时也是 ...
- nginx Access-Control-Allow-Origin 多域名跨域设置
2019-1-16 12:24:15 星期三 网站的静态文件(js, css, 图片, 字体等)是在一个单独的域名下的, 为了防止非法访问, 给nginx添加了跨域的控制, 也可以在PHP代码中添加 ...
- JVM内存模型分析(一个程序运行的例子)
(.class字节码)类加载到内存之后,内存模型:(ps:.class文件可以通过javap 指令反编译成一个可读文件) 1.java栈,本地方法栈,程序计数器(每个线程私有) 看如下程序: 以该程序 ...
- NOIP2018Day1T2 货币系统
题目描述 在网友的国度中共有 \(n\) 种不同面额的货币,第 \(i\) 种货币的面额为 \(a[i]\),你可以假设每一种货币都有无穷多张.为了方便,我们把货币种数为 \(n\).面额数组为 \( ...
- Charles使用心得总结
一.下载/安装/配置 1.1下载并安装Charles. mac版和window版都有,下载可以去Charles官网(http://www.charlesproxy.com/download/),下载下 ...
- 三丶JavaScript 的基础学习(一)
知识预览 BOM对象 DOM对象(DHTML) 8 实例练习 JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言 ...
- css3——border-image属性的用法
项目需求是实现鼠标移到按钮上时,下方显示一张渐变的三角图片,于是想到使用border-image来实现. 实现;//向外偏移10px,可使边框内部的内容不是那么紧凑border-image-repea ...