JS基础知识积累
来源:互联网 发布:unity3d在二线就业好么 编辑:程序博客网 时间:2024/05/17 22:47
1、undefined返回不同的场景。
以window.xxx引用全局变量,寻找不到,会作为某个属性不存在,返回undefined.
直接以XXX引用某变量,寻找不到,则是报xxx is not defined错误。
2、作用域问题。
//场景1var str1 = 'global';function t1(){ console.log(str1); //global console.log(str2); // undefined var str2 = 'local';}t1();
//场景2var str1 = 'global';function t1(){ console.log(str1); //global console.log(str2); // str2 is not defined str2 = 'local';}t1();
//场景3function a(b){ alert(b); function b(){ alert(b); } b();}a(1);//答案为两个b函数
总结:
JS代码执行:
a、先进行词法分析(预编译)
分析参数–>分析变量声明–>分析函数声明;
具体步骤:
1:函数运行前一瞬间,生成Active Object(活动对象),下称AO;
2:把收到的参数,形成AO的属性,参数的值即属性的值;
3:分析变量声明!如var age;
如果AO上还没有age属性,则添加AO属性,值为undefined
如果AO上已经有age属性,则不做任何影响
4:分析函数声明,如function foo() {},即把函数赋给AO.foo属性,如果此前foo属性已存在,则会被无情的覆盖。
var str = 'local';//分为分析过程和执行过程//先分析声明 var str;才是str的值为undefined;//再执行赋值操作 str = 'local';
b、然后JS代码自上而下执行;
js词法分析可以下文档:
js词法分析
燕十八JavaScript高级视频教程
初识JavaScript的解析与执行过程
0 0
- JS基础知识积累
- 基础知识积累
- JS积累
- JS积累
- JS积累
- js积累
- js积累
- js:积累
- js 积累
- Java 基础知识积累
- java 基础知识积累
- 图形基础知识积累
- ODBC 的基础知识积累
- java基础知识积累
- 内核中的基础知识积累
- 股票基础知识积累
- ASP.Net基础知识积累
- Canvas基础知识积累
- APK 集成的办法。
- for语句的执行顺序
- 正确使用Android性能分析工具——TraceView
- 潮印天下时尚 印出随心所欲
- 简单回文数的判断
- JS基础知识积累
- [揭秘]电商“一元购”后又现“0元单”,究竟是个什么“鬼”?
- Android 为什么 dp2px 或 px2dp 公式需要加 0.5f
- 定点数运算
- fatal error LNK1104: 无法打开文件“gl_helper.h”
- 黑马程序员骗局
- React Native中加载指示器组件ActivityIndicator使用方法
- 第28篇 linux下布署apprtc(五)
- 【ORACLE/SQLSERVER/MySQL】字段聚合需求实现stuff,wm_concat,group_concat