JavaScript预编译练习题
时间:2019-06-12
本文章向大家介绍JavaScript预编译练习题,主要包括JavaScript预编译练习题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
练习1.
<script> function fun(num){ console.log(num); var num = 5; console.log(num); } fun(10) //分析一波 // 1.分析全局变量GO,生成go对象 // GO={ // 全局变量声明: // 没有略过 // 全局函数声明: // fun:function; // } // 2.逐行执行 // 3.分析AO,生成AO对象 // AO={ // 1.分析参数 // num:10 // 2.分析变量声明: // num:undefind 然后赋值为5 // 3.分析函数声明 // 没有略过 // } // 最后输出: // 第十行输出是10 输出的是参数 num // 12行输出为5 输出的是变量num </script>
2.
<script> function fun(ger){ console.log(ger); function ger(){ alert("hello world"); } } fun(5) //分析一波 // 1.分析全局变量GO,生成go对象 // GO={ // 全局变量声明: // 没有略过 // 全局函数声明: // fun:function; // } // 2.逐行执行 // 3.分析AO,生成AO对象 // AO={ // 1.分析参数 // ger:5 // 2.分析变量声明: // 没有略过 // 3.分析函数声明 // ger:function; // 重复名称覆盖 // } // 最后输出:function ger(){ // alert("hello world"); // } </script>
3.
<script> function fun(ger){ console.log(ger); var ger = function(){//函数表达式 alert("hello world"); } } fun(5) //分析一波 // 1.分析全局变量GO,生成go对象 // GO={ // 全局变量声明: // 没有略过 // 全局函数声明: // fun:function; // } // 2.逐行执行 // 3.分析AO,生成AO对象 // AO={ // 1.分析参数 // ger:5 // 2.分析变量声明: // 没有略过 // 3.分析函数声明 // 没有略过 // 重复名称覆盖 // } // 最后输出:5 </script>
4.
<script> function a(b){ console.log(b); function b(){ console.log(b); } b(); } a(1) //分析一波 // 1.分析全局变量GO,生成go对象 // GO={ // 全局变量声明: // 没有略过 // 全局函数声明: // a:function; // } // 2.逐行执行 // 3.分析AO,生成AO对象 // AO={ // 1.分析参数 // b:1 // 2.分析变量声明: // 没有略过 // 3.分析函数声明 // b:function; // 重复名称覆盖 // } // 最后输出:第十行的时候 输出的是function b的表达式 因为函数声明 // 在十四行调用函数 function b的时候 // 第十二行的时候也是函数function b 的表达式 </script>
5.
<script> function a(b){ console.log(b); var b = function(){//函数表达式 console.log(b); } b(); } a(1) //分析一波 // 1.分析全局变量GO,生成go对象 // GO={ // 全局变量声明: // 没有略过 // 全局函数声明: // fun:function; // } // 2.逐行执行 // 3.分析AO,生成AO对象 // AO={ // 1.分析参数 // b:1 // 2.分析变量声明: // 没有略过 // 3.分析函数声明 // 没有略过 // 重复名称覆盖 // } // 最后输出: 1 function b的函数 </script>
7.
<script> // 第一题 function test(a,b){ console.log(a); console.log(b); var b = 234; console.log(b); a = 123; console.log(a); function a(){}; var a ; b = 234; var b = function(){}; console.log(a); console.log(b); } test(1); //分析一波 // 1.分析全局变量GO,生成go对象 // GO={ // 全局变量声明: // 没有略过 // 全局函数声明: // test:function // } // 2.逐行执行 // 3.分析AO,生成AO对象 // AO={ // 1.分析参数 // a:1 // 2.分析变量声明: // a:undefind // b:234 // 3.分析函数声明 // 没有 忽略 // 重复名称覆盖 // } // AO={ // a:function // b:234 // } // 最后输出:11行:函数a function a在17行提前声明 // 12行:undefined b声明提前 赋值在13行 // 14行:234; 输出13行赋值过后的b // 16:123 在15行赋值a为123 在十六行输出 // 21:123 赋值过后的a // 22:function 在二十行b定义为函数表达式 // // </script>
8.
<script> console.log(test); function test(test){ console.log(test); var test = 234; console.log(test); function test(){} } test(1); var test = 123; //分析一波 // 1.分析全局变量GO,生成go对象 // GO={ // 全局变量声明: // test:123; // 全局函数声明: // test:function // } // 2.逐行执行 // 3.分析AO,生成AO对象 // AO={ // 1.分析参数 // test:1 // 2.分析变量声明: // test:234 // 3.分析函数声明 // test:funtion // 重复名称覆盖 // } // AO={ // test:funtion // } // 最后输出:9行:undefined 全局变量提前声明 但是赋值在17行 错误 // 9行 输出的是 function test 先声明的是变量后声明的是函数,函数把变量覆盖了 // 11行:function test // 13 234 逐行运行后 在12行的时候test被赋值为234 </script>
9.
<script> // 第三题 function test(){ console.log(b); if(a){ var b = 100; } c = 234; console.log(c); } var a; test(); a = 10; test(); console.log(c); //分析一波 // 1.分析全局变量GO,生成go对象 // GO={ // 全局变量声明: // a : 123 // 全局函数声明: // test:function // } // 2.逐行执行 // 3.分析AO,生成AO对象 // AO={ // 1.分析参数 // 没有忽略 // 2.分析变量声明: // b:100 // 3.分析函数声明 // 没有 忽略 // 重复名称覆盖 // } // AO={ // b:100 // c =234 // } // 最后的输出结果: // 逐行运行: 在19行调用函数 function test 在第11行 输出 undefined 因为b在13行才声明 // 16 234 // 在21行第二次调用函数 a为非空 b =100 但是先输出b 然后赋值 如果输出是实在if下面就是100 // 16 234 // 22 234 </script>
10.
<script> // 第四题 function bar(){ return foo; foo = 10; function foo(){}; var foo = 11; } console.log(bar()); //分析一波 // 1.分析全局变量GO,生成go对象 // GO={ // 全局变量声明: // 没有忽略 // 全局函数声明: // bar:function // } // 2.逐行执行 // 3.分析AO,生成AO对象 // AO={ // 1.分析参数 // 没有忽略 // 2.分析变量声明: // foo :11 // 3.分析函数声明 // foo:function // 重复名称覆盖 // } // AO={ // foo:funtion // } // 最后输出结果: // 在16行调用函数 // 11行 返回值为 function // 在14行声明变量 foo并且赋值为11 是在函数 foo里面的 </script>
11.
<script> // 第五题 console.log(bar()); function bar(){ foo = 10; function foo(){} var foo = 11; return foo; } //分析一波 // 1.分析全局变量GO,生成go对象 // GO={ // 全局变量声明: // 没有忽略 // 全局函数声明: // bar:function // } // 2.逐行执行 // 3.分析AO,生成AO对象 // AO={ // 1.分析参数 // 没有忽略 // 2.分析变量声明: // foo :11 // 3.分析函数声明 // foo:function // 重复名称覆盖 // } // AO={ // foo:funtion // } // 最后输出结果: // 在10行调用函数 // 声明函数为 foo:function // 12 foo被赋值为为10 // 14行 声明变量并且赋值为11 // 在14行声明变量 foo并且赋值为11 是在函数 foo里面的 // 15行 返回值为 11 </script>
原文地址:https://www.cnblogs.com/wangzheng98/p/11009853.html
- 大白话解析模拟退火算法
- 用R解析Mahout用户推荐协同过滤算法(UserCF)
- 操作符与数据类型转换
- 超级强大的vim配置(vimplus)
- 美团App插件化实践
- 函数式编程在Redux/React中的应用
- 关于刘海打理这种事儿,美团点评的iOS工程师早就有经验了,不信你看!
- 这个Spring高危漏洞,你修补了吗?
- 详析JSONP跨域
- Android Binder漏洞挖掘技术与案例分享
- Stanford机器学习笔记-5.神经网络Neural Networks (part two)
- 监控平台前端SDK开发实践
- 一步步实现静态页面布局
- Stanford机器学习笔记-3.Bayesian statistics and Regularization
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Shell正则表达式一览表
- YAML基础语法
- 详解Kubernetes存储体系
- Python3 正则表达式特殊符号及用法.md
- Web网页响应式布局.md
- BootStrap应用开发学习入门1
- Python实现单链表和字典
- 关于如何做好运维管理工作的一点思考
- 2.6-Air302(NB-IOT)-基础外设-AD采集,NTC温度传感器B3950
- 2.5-Air302(NB-IOT)-基础外设-串口(485,422),CRC校验
- 2.3-Air302(NB-IOT)-基础外设-输入检测
- 2.2-Air302(NB-IOT)-基础外设-PWM输出
- API可视化管理平台YApi
- BootStrap应用开发学习入门
- 为什么要学习现代控制理论(机器人方向)?