独立开发者系列(36)——ES6的开发背景知识

1. 相关概念:Javasrcipt = ECMAScript的标准(简称ES) + DOM(文档对象模型) +BOM(浏览器对象模型)三部分组成。

注意的是十年前的JS基础要求是ES基础,基本是W3CSchool里面学习ES5的皮毛,那时候主要是做网页实现一些简单的判断。基本都是 招聘要求里面经常写的要求是熟练掌握ES6语法 主要是掌握最新的js语法写法,试图利用之前掌握的那点皮毛,是完全不能说是掌握了ES开发的。

要理解到WS语法规则版本已经到ES7 ,十几年前我大部分学习到的JS,觉得JS挺简单,但是到了ES6时代,使用范畴大范围扩充,甚至已经充实到了后端,这让很多老的程序员觉得前端简单的,纷纷沦陷,发现自己开始看不懂很多前端的代码。

ES6的代码是可以通过工具转化成ES5的,所以从理论上讲基本上不用学习ES5,ES6已经可以用来编写复杂的大型应用程序,成为企业级开发语言。

2.程序基础调试输出 简单的直接弹框查看即可 这个基本保持不变 这个意味着调试代码方式不变

alert(“弹框”) //弹框 看下到了页面没有 写简单手机页面的时候,手机端打开,没有打印的时候,勉强用这个函数弹框 看下强烈提示

window.document.write(“Hello, world!”); // 将页面打印出变量 基本很少使用,一般使用更改HTML

console.log(1) 控制台正常 console.error(“错误”) //一般情况下第一个已经够用 后面标准化才使用

3.理解原型链的概念 原型链是 JavaScript 实现对象继承和属性委托的重要机制。通过原型链,JavaScript 实现了对象之间的属性和方法的共享和继承,使得代码更加高效和灵活

看下下面代码

调试台里面可以正常看到 10的输出,这里面意味着 执行console.log(x)的时候,没有找到x变量,直接将函数的上一层变量读取 使用出来。如果还没读取到,会继续往上读取,一直读到最外层,如果最外层还是没有找到该变量, 就会返回undefined。这是ES独有的特性,其他语言不是这样定义的。所以这是一个JS里面比较新和基础的概念。

4.变量的声明变化 let

<script>
    function example() {
        if (true) {
            var varVariable = 'var can be accessed outside the block';
            let letVariable = 'let can only be accessed inside the block';
        }
        console.log(varVariable); // 'var can be accessed outside the block'
        console.log(letVariable); // Error: letVariable is not defined
    }
    example();
</script>

又是一个从 ES5 转入ES6时候的莫名其妙,都是赋值,但是let的作用只有块级 这意味着let只有在{} 里面才能生效。这个是防止变量污染的大杀器,意味着你定义了一个let变量{}之外必然失效。而且这个转变,让我们写对象变得非常自信了。

比如写个 test = {} 这样的对象,里面可能存在方法和变量,只要让里面的变量使用let修饰,就可以确保里面的变量不会被外部使用,同时出了{} 就会不再被影响。而如果使用var 全局变量可能会受到影响。

围绕变量的作用域,延伸出了很多JS的经典考题,还有很多属性,也让理解这些特性变得很烧脑。为了保持良好的编程。基本都建议使用let/const 来定义相关变量。全局变量会让程序很容易变得晦涩难懂。包括可能存在的var 变量提升问题

letconst之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。这符合函数式编程思想,有利于将来的分布式运算。 定义一个最常用的const变量,很多插件库的定义使用。都是下面这个格式

const atom = {

ref: ref,

value: 1,

addValue: function (value) { return atom.value + value; },

};

5.变量的结构用法 (ES6的新语法)

结构语法可以让语句显得非常灵活,后端语言基本都支持结构分配值

let [ , , third] = [“foo”, “bar”, “baz”];

结构语法是很多库最常用的一种方法,传入参数进行解构,然后对应分解逻辑使用

6. 箭头函数形式 (该写法当前已经被广泛使用,最开始看到的时候,有点蒙圈)

(() => { console.log(‘hello.’); })();

这段代码一下子啊就让我们想起了我们大名鼎鼎的jquery的新版本写法。一个大括号包裹着一个很大的函数 function test( console.log(“hello”) ){} test() 可以看到箭头函数的写法大幅度简化了代码

简单说明就是:

// 多个参数的箭头函数
const func = (param1, param2) => {
    // 函数体
};

值得注意的是:

简单的、单行的、不会复用的函数,建议采用箭头函数。如果函数体较为复杂,行数较多,还是应该采用传统的函数写法

箭头函数的出现,是ES6开发和前面ES5开发标志性的不同,而且这种写法大幅度扩充到了小程序/VUE里面

7.模块的导入 这个是做各种库和各种框架开发时候比较头痛,但是非常关键的

// commonJS的写法 
var React = require('react');
var Breadcrumbs = React.createClass({  render() {    return <nav />;  } }); module.exports = Breadcrumbs; 
// ES6的写法 
import React from 'react';
const Breadcrumbs = React.createClass({  render() {    return <nav />;  } }); export default Breadcrumbs
  • 加载时机: CommonJS 是动态加载和同步执行的,ES6 是静态加载和异步执行的。
  • 语法和特性: ES6 模块的语法更加简洁和灵活,支持默认导出和命名导出的同时存在。
  • 环境适用性: CommonJS 更适合于服务端开发,而 ES6 模块适用于各种环境,包括现代浏览器和 Node.js。
  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大梁来了

千山万水总是情,打赏一块行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值