JavaScript学习 | 青训营笔记

60 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天

简介:

JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。

JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。 

JavaScript的标准是ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES2015。

JS和java的区别和联系:

编程范式:

Java 严格遵循面向对象编程范式,而 JavaScript 遵循多范式,包括面向对象编程、过程化和脚本编程语言。

代码执行:

Java 应用程序具有在 JVM(Java 的虚拟运行时环境)上运行的灵活性,而 JavaScript仅在特定于浏览器的特定于应用程序的环境中运行。

类型检查:

Java 确保在编译前对其变量和函数进行强类型检查,这使得运行或编译时运行的概率非常低。然而,JavaScript是弱类型的,变量的类型在编译之前是未知的,因此,运行或编译时错误的机会增加。

性能:

由于其参与的性质,脚本语言总是比纯编程语言更有效,因此,与 JavaScript 相比,Java 效率较低且速度较慢。

js代码演示:

const videoConstraints = { width: 1366, height: 768 };
let stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: videoConstraints });
let mediaRecorder = new MediaRecorder(stream);
let mediaRecorderChunks = []; // 记录数据流

mediaRecorder.ondataavailable = (e) => {
    mediaRecorderChunks.push(e.data);
};

mediaRecorder.onstop = (e) => {
    // 通过Blob对象,创建文件二进制数据实例。
    let recorderFile = new Blob(mediaRecorderChunks, { 'type' : mediaRecorder.mimeType });
    mediaRecorderChunks = [];
    const file = new File([this.recorderFile], (new Date).toISOString().replace(/:|\./g, '-') + '.mp4', {
        type: 'video/mp4'
    });
    download(URL.createObjectURL(file));
    // 下载视频
    function download (src) {
        if (!src) return;
        const a = document.createElement('a');
        a.setAttribute('download', new Date());
        a.href = src;
        a.click();
    }
};

mediaRecorder.stop(); // 停止录制,触发onstop事件