ES6新语法 变量 、 服务器端js和浏览器端js的区别

服务器端js和浏览器端js的区别

/**
 * 1.js运行在浏览器端有
 * ECMAScript:js语法(变量,数据类型,表达式,代码结构)
 * Bom:浏览器对象模型,用js去操作浏览器窗口
 * Dom:文档对象模型,用js去操作页面上的dom树
 * 
 * 2.js运行在服务器端只有
 * ECMAScript:js语法(变量,数据类型,表达式,代码结构)
 * 
 * 3.所有在node.js中不能写dom和bom语法的东西
 */

//例如  正常的js语法没问题的
var name = 'chen';
console.log(name);//正常返回 

//但是用dom和bom的话 就会报错
console.log(document);//document is not defined
alert(22);//alert is not defined
将符合es6的代码转换为es5的代码的网站 https://www.babeljs.cn/

就是能将es6的新语法转换为符合es5的旧语法的网站

let关键字和const关键字

let关键字
/**
 * var是声明变量 
 *  有变量提升
 *  没有块级作用域,是函数作用域
 *  可以重复声明
 * 
 * let也是声明变量 
 *  没有变量提升
 *  有块级作用域
 *  不可以重复声明
 */

// 变量提升
console.log(age);
var age = 38;//不会报错  但是结果会是undefined 因为是在声明前调用的  利用的是AO或者说是变量提升
let age = 38;//会报错 不利用的是AO或者说是变量提升


//块级作用域
for(var i = 0; i < 10; i++){
    
    
}
console.log(i);//不会报错 输出i的值
for(let j = 0; j < 10; j++){
    
    
}
console.log(j);//会报错 用let声明外面是找不到j的相当于局部变量


//重复声明
var num = 20;
var num = 10;
console.log(num);//不会报错
let num1 = 20;
let num1 = 50;
console.log(num1);//会报错  不能重复声明

//都可以重新赋值
var num = 20;
num = 10;
console.log(num);//不会报错
let num1 = 20;
num1 = 50;
console.log(num1);//不会报错
const关键字
/**
 * const关键字是声明常量的 就是一旦声明就不允许改了 比如圆周率
 *  没有变量提升
 *  有块级作用域
 *  不可以重复声明
 *  不能重新赋值(声明时 必须初始化)
 */
console.log(num);

const num = 100;
{
    
    
    const num1 = 100;
}
console.log(num1);

const num2 = 100;
const num2 = 10;

const num3 = 20;
num3 = 10;

const num4;

猜你喜欢

转载自blog.csdn.net/weixin_44492275/article/details/107190552