首页 > 编程语言 >JavaScript | Variable、Function、Module、Class (一)

JavaScript | Variable、Function、Module、Class (一)

时间:2023-12-28 16:23:42浏览次数:35  
标签:Function JavaScript module js width export Variable import height

函数

函数声明

function sayHello(){
    return "Hello JavaScript!!"
}

函数表达式

let sayHello = function() {
    return "Hello JavaScript!!"
}

函数、变量提升: 函数和变量都会被提升,且函数会被优先提升;提升的意思是只要有声明定义,那么先调用都可以。因为JS会把定义放到最前面去。

//变量提升
a = 1; b = 2;
console.log(a + " " + b); // 1 2
let a,b;
//函数提升
sayHello(); // Hello U!
function sayHello() {
    return 'Hello U!'
}

类: 定义类有两种方法,一种是声明类;一种是通过表达式来定义类

类声明(关键字为class)

class rectangle {
    constructor(width, height){
        this.width = width;
        this.height = height;
    }
}

​ 声明类的主要组成是class 关键字;类名;类体;构造函数

类表达式(类似于函数表达式,可以把匿名类或者有名类赋值给变量)

let rectangle = class {   //匿名类
    constructor(width, height) {
        this.width = width;
        this.height = height;
    }
}
console.log(rectangle.name) //'rectangle'

let rectangle = class rectangle2{ //非匿名类
    constructor(width, height) {
        this.width = width;
        this.height = height;
    }
}
console.log(rectangle.name) //'rectangle2'

类体包含项

constructor 构造函数类的基本组成,是每个类的必要组成,子类可以通过super() 关键字来调用父类的构造函数
class Animal {
    constructor(name, age){
        this.name = name;
        this.age = age;
    }
}

class Dog extend Animal {
    super();
}

let Dog1 = new Dog('heizi', 'one');
console.log(Dog1.name); //'heizi';
getter 类变量的动态执行
class Rectangle {
    constructor(width, height){
        this.width = width;
        this.height = height;
    }

    get area() {
        return this.getArea();
    }
    
    getArea() {
       return this.width * this.height;
    }
}

const square = new Rectangle(100, 80);
console.log(square.Area); //'8000';
static variable and static function 静态变量和静态方法,不用实例化类可以直接访问的类变量和类方法,一般时工具函数。
class Rectangle{
    constructor(width, height){
        this.width = width;
        this.height = height;
    }
    
    static displayName = 'Rectangle';
    
    static getArea(){
        return this.width * this.height;
    }
}

const square1 = new Rectangle(40, 20);
console.log(square1.displayName); //undefined

const square2 = new Rectangle(60, 30);
console.log(square2.getArea(60,30)); //undefined

console.log(Rectangle.getArea(60,30)) //1800

模块 功能是按需要加载程序代码

export 变量和函数
export const name = 'module introduce';

export function draw() {}
export default
function sayHello() {
	return "Hello World!!"
}

export default sayHello;
import 变量和函数
import {name, draw} from './module.js';
import default
import sayHello from './module.js';
import {default as sayHello} from './module'; //实际上是
避免模块方法重名 as的应用
//三种方法,一种是在export时使用as,两种是在import时使用
// 第一种 export 时使用 as 重命名
function getArea() {
    return this.width * this.height;
}
export {getArea as getAreaMod} 
/**导入**/
import {getAreaMod} from './module.js'
// 第二种 import 时使用 as 重命名
import {getArea as getAreaMod} from './module.js';
// 第三种 import 时用module对象来区分
import * as module from './module.js';
module.getArea();  //调用
导出类
// square.js
class Square {
    constructor(width, height) {
		this.width = width;
         this.height = height;
    }
    
    draw() {
        ......
    }
}
export { Square }
//main.js
import {Square} from './square.js';
let square1 = new Square(30,20);
square1.draw();
合并模块
// shapes.js 在这个js中合并
export {Square} from './Square.js';
export {Triangle} from './Triangle.js';
export {Circle} from './Circle.js';

// main.js 引用
import {Square, Triangle, Circle} from './shapes.js';
动态加载模块
//main.js
button.addListener('click', () => {
    import('./shapes.js').then((mod) => {
        let square1 = new mod.Square(60, 30);
        square1.draw();
    })
})

标签:Function,JavaScript,module,js,width,export,Variable,import,height
From: https://www.cnblogs.com/rushintocloud/p/17932947.html

相关文章

  • 【flink番外篇】4、flink的sink(内置、mysql、kafka、redis、clickhouse、分布式缓存、
    文章目录Flink系列文章一、maven依赖二、广播变量BroadcastVariables示例1、介绍2、广播变量示例3、验证三、BroadcastState与BroadcastVariable区别本文简单的介绍了flink中关于广播变量的简单使用示例。一、maven依赖为避免篇幅过长,所有基础依赖均在第一篇文章中列出,具......
  • HTML学习第七天:JavaScript进阶与事件处理
    在今天的HTML学习中,我进一步深入了JavaScript的学习,特别是事件处理方面。早上,我回顾了昨天学习的JavaScript基础知识,并进行了一些练习,以加深自己的理解。然后,我开始学习事件处理。事件处理是JavaScript中非常重要的一部分,它允许我们响应用户的各种操作,如点击、滑动、键盘输入等。我......
  • HTML学习第六天:初步探索JavaScript与交互
    在今天的HTML学习中,我初步探索了JavaScript和网页交互的世界。早上,我首先了解了JavaScript的基本概念和语法。JavaScript是一种用于增强网页交互性的脚本语言,它可以直接在浏览器中运行。我学习了如何使用变量、函数和基本的控制结构来编写JavaScript代码。午后,我开始将JavaScript与......
  • PBKDF2(Password-Based Key Derivation Function 2)算法
    一、引言在当今数字时代,保护用户数据和隐私的安全变得越来越重要。为实现这一目标,加密和密钥管理技术发挥着关键作用。PBKDF2(Password-BasedKeyDerivationFunction2)算法作为一种基于密码的密钥生成方法,广泛应用于各种安全场景。本文将从各个方面介绍和解释PBKDF2算法,剖......
  • Javascript 原型链 jQuery原型链 js原型链 我感觉我能一直写下去 扶着我>_<
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>原型链闭环</title><scriptsrc="./jquery.js"></script></head><body><divclass=&quo......
  • JavaScript事件
    事件JavaScript事件,就是用户或浏览器本身的某种行为,一般是用户对页面的一些动作引起的,比如用户的点击某个链接、在文本框中输入文本等。绑定对应的事件方法一:直接在元素上面添加一个事件属性语法:方法二:在js中找到dom添加事件语法:方法三:使用addEventListener 语法:注意......
  • Multivariate Function in Mathematics Education: 30 Engaging Blog Posts for Teach
    1.背景介绍在数学教育领域,多变量函数是一个非常重要的概念。它们在许多实际应用中发挥着关键作用,例如经济学、生物学、物理学等领域。然而,在教育中,多变量函数的教学和学习往往受到一些挑战。这篇博客文章将探讨如何通过30个有趣的博客帖子来提高多变量函数在数学教育中的教学质量。......
  • 创建一个双模式跨运行时的 JavaScript 包
    本文将指导你发布双模式、跨运行时的JavaScript包。了解如何创建与ESM和CommonJS以及Node.js、Deno和浏览器等不同运行时兼容的库。随着JavaScript开发的不断发展,人们越来越需要能在多种环境中运行的强大依赖包。在本文中,我们将探讨如何发布跨运行时、双模式的JavaScr......
  • Spring Boot学习随笔- RestFul API(@RestController、@RequestBody、@PathVariable),使用
    学习视频:【编程不良人】2021年SpringBoot最新最全教程第十六章、RestFulAPI什么是RESTREST全称是ResourceRepresentationalStateTransfer,中文意思是表述性状态转移,它首次出现在2000年RoyFielding的博士论文中,RoyFielding是HTTP规范的主要编写者之一。他在论文中表......
  • 神奇的 SQL ,高级处理之 Window Functions → 打破我们的局限!
    开心一刻今天儿子跟老婆聊天儿子:妈妈,我为什么没有两个爸爸呀老婆:每个人都只有一个爸爸呀,你看谁有两个爸爸了儿子一脸真诚的看着老婆:那你为什么就有两个爸爸呢老婆一脸疑惑的望向儿子:我哪有两个爸爸了?儿子有点不服气,温柔地说道:你管爷爷叫爸爸,你管姥爷还叫爸......