JavaScript中的模板直面量

模板直面量

javascript 复制代码
const book = {
            name: '你爱的书籍为'
        };
        console.log(`${book.name}`);//注意使用``来输出name的属性值
  • 我们可以省去function关键字,只用=>来表示

    javascript 复制代码
     let circle = r => {
                const name = 3.14;
                const area = name * r * r;
                return area;
            }
            console.log(circle(2));
  • 还可以省去return

javascript 复制代码
const name = r => 
    3.14 * r * r;
    console.log(name(4));
  • 如果不接任何的值,可以用一对空的圆括号,在ES5中经常使用

javascript 复制代码
const hello = () =>console.log('hello');
hello()//进行调用
  • arguments对象它是一个数组,包含函数被调用时传入的参数,即使不知道函数的,名称也可以动态获取这些参数

  • apply()函数额可以将数组转变为参数

javascript 复制代码
function sum (x,y,z){
    return x + y + z ;
}
let num = [3,5,6]; 
console.log(sum(...num));
//console.log(sum.apply(undefined,num));效果和上边一样
  • 调用sum方法可以将传入的参数用(....)来表示

  • 展开式运算符(...)也可以替代arguments,当作剩余的参数使用

javascript 复制代码
function rest(X , Y , ...a){
    return (x + y) * a.length;
}
console.log(rest(1,2,"hello",5));
上下代码效果一致
function rest (x , y){
    let a = Array.prototype.slice.call(argument,2);
    return (x + y) * a.length;
}
javascript 复制代码
let [x , y ] = [ ' a '  , ' b ' ] ;
上下的代码相同
let x = 'a';
let y = 'b';
----------------------------------
数组解构可以进行值的互换,而不需要创建临时变量
[x,y] = [y,x]
上下的代码相同
let temp = x ;
x = y ; 
y = temp ;
  • 属性简写功能,

javascript 复制代码
let [x,y] = ['a' , 'b'];
let obj = { x , y };
console.log(obj);
-----------------------
let x = 'a';
let y = 'b';
let obj2 = { x: x,y: y };
console.log(obj2)
//输出的结果是,{x:"a" , y: "b"}
  • 简写方法名

javascript 复制代码
const name = {
    name = 'absc',
    printHello (){
        console.log('Hello');
    }
};
console.log(name.printHello());
这个像java一样定义方法
--------------------------------
上下的代码一致
let name = {
    name: 'absds',
    printHello: function name (){
        console.log('Hello');
    }
};
console.log(name.printHello());
  • 更简洁的声明类的方式

javascript 复制代码
function Book(title, pages, isbn) { // {1} 
 this.title = title; 
 this.pages = pages; 
 this.isbn = isbn; 
} 
Book.prototype.printTitle = function() { 
 console.log(this.title); 
}; 
我们可以用 ES2015 把语法简化,如下所示。
class Book { // {2} 
 constructor(title, pages, isbn) { 
 this.title = title; 
 this.pages = pages; 
 this.isbn = isbn; 
 } 
 printIsbn() { 
 console.log(this.isbn); 
 } 
}
  • 属性存取器

javascript 复制代码
class Person {
     constructor(name) {
     this.name = name;
     }
​
     get name() {
     return this.name;
     }
     // set name(value) {
     //     this.name = value;
     // }
     }
     let main = new Person('小明');[1]
     console.log(main.name);
​
  • constructor是JS的构造器和java的构造器性质一致,有函数名与构造名一致的功能,故赋值为如1所示

  • get 和 set 是JS的关键字,在函数名前面加上get 或set 关键字

相关推荐
大不点wow29 分钟前
Java序列化与反序列化:让对象走出JVM
java·开发语言·jvm
阿里嘎多学长29 分钟前
2026-07-22 GitHub 热点项目精选
开发语言·程序员·github·代码托管
吃糖的小孩32 分钟前
从只读页面到可控真实探针:我如何给 Owner Console 加手动诊断
前端
谷无姜33 分钟前
为什么你的性能优化无效?可能是"木桶效应"在作祟
前端·性能优化
噢,我明白了33 分钟前
Java中日期和字符串的处理
java·开发语言·日期
爱刷碗的苏泓舒33 分钟前
C 语言 if-else 与 switch-case 分支语句对比
c语言·开发语言
雾非雾36 分钟前
《基于具身交互智能数字人技术:如何打造AI数字人宣讲平台"红厅智播”》
前端
-银雾鸢尾-43 分钟前
C#中的泛型约束
开发语言·c#
Revolution611 小时前
一段 JavaScript 代码执行时,到底发生了什么
前端·javascript
智能起源1 小时前
关于元素层级过多,导致压祯的问题(使用winform或者WPF应用的webview组件嵌套网页时,动效卡顿问题)
前端