JS语法学习

142 阅读2分钟

JS语法学习

容器类

set集合的使用

1.声明一个set集合

var setVar = new Set();
<!--在定义的时候就初始化-->
var s = new Set([1, 2, 3, 3, '3']);

2.js如何查看变量类型

1. 一般简单的使用 typeof 或 instanceof 检测(这两种检测的不完全准确)
2. 完全准确的使用 原生js中的 Object.prototype.toString.call  或 jquery中的 $.type 检测

3.JavaScript 中 var 和 let 和 const 关键字的区别

# var 和 let 对比
1.let 是块作用域,即其在整个大括号 {} 之内可见。
2.在变量声明之前就访问变量的话,会直接提示 ReferenceError,而不像 var 那样使用默认值 undefined

# let 和 const 对比
const 和 let 的作用域是一致的,不同的是 const 变量一旦被赋值,就不能再改变了

# 总结
大多数情况下都使用 const,除非你知道你的变量的值还会被改变,这样的话,别人阅读你的代码不用老想着这个变量的值会不会有改变。如果这个变量的值的确需要改变,例如在 for 循环里面,那么就是用 let。这也同时意味着你以后就不要用 var 了。

4.js Object.keys(map)列出map添加删除key

var map = {};
map["a"] = "qwer";
map["b"] = "df";
 
console.log(Object.keys(map));    //[ 'a', 'b' ]
console.log(map);                 //{ a: qwer, b: df }
delete map["a"];                  
console.log(map);                 //{ b: df }
console.log(Object.keys(map));    //[ 'b' ]

5.对象如何合并

var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };

var obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1);  // { a: 1, b: 2, c: 3 }, 注意目标对象自身也会改变。

6.js的函数调用与传递 ,闭包演示

当函数可以记住并访问所在词法作用域时,就产生了闭包,即使函数是在当前词法作用域外执行。

function foo() {
    var a = 2;
    function getA() {
        console.log(a);
    }
    // 表示对函数引用的传递,只需要使用函数名
    return  getA;
}
var baz = foo();
// 带括号表示对函数的调用
baz();