1.函数到底是什么?
- 可以重复调用的代码块。
- 可以单独写在JS文件中,需要时最是调用。
2.函数的创建方式
- 函数声明式
function fun(){
console.log("helloWorld");
}
fun();
fun函数名,代表整个函数
fun()代表函数的调用
- 函数表达式
var func=function(){
console.log("helloWorld");
}
console.log(func);
func();
- 构造函数(这种方式很少使用)
var funct=new Function("var num1=10;var num2=20;console.log(num1+num2)");
funct();
首字母大写开始的叫构造函数
3.变量声明提升
console.log(b);// undefined
var b=20;
相当于
var b;
console.log(b);
b=20;
JS执行前会预解析,会把var后面紧跟的变量声明全部提升到最前面,然后再开始一条一条执行。
var a=20;
function fun(){
console.log(a);
var a=10;
相当于
var a;
console.log(a);
a=10;
}
fun();// undefined
思路练习:
fun();// 20 20 20
console.log(c);// 20
console.log(b);// 20
console.log(a);// 报错
function fun(){
var a=b=c=20;
console.log(a);
console.log(b);
console.log(c);
}
4.JS两种声明函数的方法以及调用顺序
两种声明方法:
- 第一种: var a = function () {…};
- 第二种function a() {…};
第一种方式必须先声明后调用,而第二种方式函数调用在声明之前之后都可以。
页面加载过程中,浏览器会对页面上或载入的每个js代码块(或文件)进行扫描,如果遇到定义式函数,则进行预处理(类似于C等的编译),处理完成之后再开始由上至下执行;遇到赋值式函数,则只是将函数赋给一个变量,不进行预处理(类似1中变量必须先定义后引用的原则),待调用到的时候才进行处理。
//第一种方式
//a();这样调用会出错
var a = function () {
alert("A");
}
a();//A
//第二种方式
b();//B
function b() {
alert("B");
}
b();//B
5.复习前面内容
- 五种基本数据类型 Number String Boolean Null Undefined
- JS的作用 网页中的基本特效 表单验证 控制canvas Ajax 服务器开发nodeJS 游戏开发
- 三种输出语句 alert(); console.log(); document.write();
- 运算符
-
- 算术运算符 + - * / % ()
-
- 关系运算符 >< >= <= == === != !==
-
- 逻辑运算符 && || !
-
- 一元运算符 typefo ++ --前置先赋值后运算,先运算后赋值
- if语句
-
- if基本语句
-
- if多分支语句
-
- if嵌套使用
-
- 跳楼现象
- for循环
-
- for循环执行过程
- 函数
-
- 重复执行的代码块的封装
-
- function name(参数1,参数2){代码块};
-
- 参数传递 形参 实参 形参和实参的个数要统一
-
- 返回值return 后面的代码不会执行 return后面的代码不能换行
-
- 三种创建方式 函数声明 函数表达式 Function构造函数
- JS三种书写方式 行内式 内联式 外链式(推荐使用)
- 内置对象 直接提供给开发者使用
- 获取元素的第一种方式 getElementById();
- 事件 常用几个事件
-
- onclick
-
- onmouseover
-
- onmouseout
-
- onload window.function(){};入口函数:当页面、图片、外部资源等加载完成后执行代码
- 变量声明的提升
-
- 预解析:找关键字var,然后把var和变量名提升到最顶部
测试错题总结
- console.log(undefined+undefined);// 返回NaN
- console.log(isNaN(“123”));// 返回false
- JavaScript组成:ECMAScript、BOM、DOM三部分
- 变量声明的提升
console.log( func );
func();
var func = function(){
console.log(123)
}
结果应该是undefined 然后报错