JS 一些基本概念
- 数据类型
- 基本类型:
number
、boolean
、string
、undefined
、null
- 引用类型:
array
、object
、function
、
- typeof 返回 六 种值
number
、boolean
、string
、object
、function
、undefined
- 六种情况下返回值为 false
false
、0
、undefined
、null
、""
、NaN
- 其他
null < 0、 null > 0、null == 0 // 均为 false
undefined < 0、undefined > 0、undefined == 0 // 均为 false
null == undefined // true
{} == {} // false
[] == [] // false
运行逻辑
- 语法分析:通篇执行一遍,看有木有问题,有问题直接报错
语法问题报错:Uncaught SyntaxError
逻辑问题报错:Uncaught ReferenceError
- 预编译:( 预编译发生在函数执行的前一刻 )
- 创建 AO 对象;(AO:Activation Object 执行期上下文)
- 找到形参和变量声明,将变量和形参名作为 AO 属性名,值为 undefined
- 将实参值和形参统一
- 在函数体里面找函数声明,值赋予函数体
变量与函数
console.log(a);
var a = 123; // 将 var 变成 let 将如何?
test()
function test() {
console.log(123)
}
global = 100;
function fn() {
console.log(global);
global = 200;
console.log(global);
var global = 300; // 将 var 去掉将如何?
}
fn();
function fn(a) {
console.log(a);
var a = 123;
console.log(a);
function a(){};
console.log(a);
var b = function(){};
console.log(b);
function d(){};
};
fn(1);
预编译执行逻辑
// 第一步、第二步:
AO: {
a: undefined,
b: undefined,
}
// 第三步:
AO: {
a: 1,
b: undefined
}
// 第四步:
AO: {
a: function a(){},
b: function(){},
d: function d(){}
}
JS 基本类型和引用类型赋值问题
var a = 1;
function foo(x) {
x = 2;
}
foo(a);
console.log(a);
var obj = {x : 1};
function foo(o) {
o.x = 3;
}
foo(obj);
console.log(obj.x);
var obj = {x : 1};
function foo(o) {
o = 100;
}
foo(obj);
console.log(obj.x);
let obj = {a: 0};
function fun(obj) {
obj.a = 1;
obj = {a: 2};
obj.b = 2;
}
fun(obj);
console.log(obj);
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!