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());

浙公网安备 33010602011771号