前端小菜鸡

前端小菜鸡

请多多指教

js基础知识

js区分大小写

基本数据类型和引用数据类型

JavaScript
js基本数据类型包括: null undefined string boolean number symbol(es6新增)
js引用数据类型包括: Object

检测基本数据类型用 typeof
typeof null             //Object
typeof undefined        //undefined
typeof 5               //number
typeof true             //boolean
typeof "hello"         //string
typeof Symbol()         // 'symbol'

基本数据类型拷贝的:浅拷贝,只拷贝一层  栈内存中
引用数据类型拷贝:深拷贝 拷贝对象的指针 堆内存中

基本数据类型除了null、undefined之外都有一个toString()方法,该方法返回字符串的一个副本。
在不知道值是不是null、undefined的情况下,还可以使用转型函数String(),这个函数可以将任何类型的值转换成字符串。

typeof 对于对象来说,除了函数都会显示 object,所以说 typeof 并不能准确判断变量到底是什么类型
JavaScript
typeof []                 // 'object'
typeof {}                 // 'object'
typeof console.log        // 'function'

//对于引用数据类型 用 instanceof
var

函数传参是传递了对象指针的副本。

一、变量
从编程角度讲,变量是用于存储某种/某些数值的存储器。我们可以把变量看做一个盒子,盒子用来存放物品,物品可以是衣服、玩具、水果...等。

1、变量的命名规则
可是是英文字母、下划线、$符号开头
以下变量名是合法的: name _name   $name

以下变量名是不合法的 😡
JavaScript
6num //开头不能用数字
%sum //开头不能用除(_ $)外特殊符号,如(% + /等)
sum+num //开头中间不能使用除(_ $)外特殊符号,如(% + /等)

2.变量名区分大小写,如:A与a是两个不同变量。

二、静态作用域(js采用词法作用域)
JavaScript
var value = 1;
function foo() {
console.log(value);
}
function bar() {
var value = 2;
foo();
}
bar();
// 结果是 1

js采用词法作用域:执行 foo 函数,先从 foo 函数内部查找是否有局部变量 value,如果没有,就根据书写的位置,查找上面一层的代码,也就是 value 等于 1,所以结果会打印 1。

三、全局对象
1.可以通过 this 引用,在客户端 JavaScript 中,全局对象就是 Window 对象。
JavaScript
console.log(this);
//结果:
Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …}

2.全局对象是由 Object 构造函数实例化的一个对象。
JavaScript
console.log(this instanceof Object);
//true

3.预定义了一堆,嗯,一大堆函数和属性。
JavaScript
console.log(Math.random());
console.log(this.Math.random());

posted @ 2019-01-17 09:40  明小溪  阅读(43)  评论(0)    收藏  举报