JS基础学习05

17. 函数部分内容补充

17.1 函数的四种形式

1 无参无返回值:常用于代码的复用,或是功能代码段。

2 无参有返回值:函数被调用后的返回值与调用者无关。

function f1(){
    return 20;
}

3 有参无返回值:函数设有参数,但是没有特定的返回值。

function sayHi(name){
    console.log("你好啊"+name);
}

4 有参有返回值(JS中最多使用的类型)

function getMax(arr){
    var max = arr[0];
    for(var i=1;i<arr.length;i++){
        max = max<arr[i]?arr[i]:max;
    }
    return max;

}

注意:无返回值是指没有return语句,而不是真的没有返回值,这时的返回值默认为undefined。

17.2 函数的重载

重载的含义:就是指拥有相同的函数名,但是函数的参数个数不同或者参数的类型不同时的函数,这时可以通过函数参数的个数和参数的数据类型来选择对应的函数。

但是在JS中如有重名的函数,后面的函数会将前面的函数覆盖掉,前面的函数无法再被调用了。

function getSum(a,b){
    return a+b;
}
function getSum(a,b,c){
     return a + b +c;
}
var sum = getSum(10,20);

console.log(sum);

如上述代码声明了两个函数名相同但是函数的参数数量不一样的函数,最终代码会输出NaN,即选择了第二个函数进行了调用执行。(注意:这个函数中c未赋值,所有函数默认c为undefined,转换为number类型数据就是NaN。NaN参与运算后的结果还是为NaN。)

17.3 函数表达式的方式声明函数

指将一个函数通过赋值给一个变量的方式声明函数,这个函数没有函数名。在调用函数时可以通过变量名+()的形式调用变量名对应的函数。

var fun = function(a,b){
    return a-b;
};
fun(50,70);

17.4 匿名函数

匿名函数就是没有函数名的函数,在使用函数表达式的方式声明的函数就是匿名函数。

17.5 函数的声明方式与函数表达式的区别

1 函数的声明方式中的函数有函数名;

2 函数表达式的方法中的函数没有函数名,是匿名函数;

3 在函数预解析的时候,会先将函数声明提前到作用域的最前面,而函数的表达式不会提升;

4 函数声明方式中的函数,可以先调用再声明,但是函数表达式方式的函数必须在函数表达式语句之后才能被调用。

17.6 函数的预解析

在程序的执行代码之前,会将所有的代码扫描一遍,将所有变量的声明、函数的声明、函数的参数提升到当前作用域的最前面,这时通过函数声明方式声明的函数会整个提升,但是通过函数表达式声明的函数只能将变量的声明部分提升,而函数的表达式部分还留在原代码位置未提升,所有如果在函数表达式之前调用函数的话,程序会报错提示这个变量没有定义值。

17.7 自执行函数

自执行函数指可以自己执行的函数。

(function(){
     console.log("这是一个f2的函数");
})();

(function(){
     console.log("这是一个f3的函数");
     console.log("看看我有没有执行");
}());

这是两个自执行函数的表达方式。自执行函数没有函数名,函数在定义之后马上进行调用。

这种函数多用于一次性使用的时候,避免了函数名的重复和冲突。

18. 变量的作用域

JS中只存在全局作用域和局部作用域,没有块级作用域。

18.1 块级作用域

若在{}之间包裹的区间中单独声明了变量,且这个变量无法在{}区间外被调用的话,这个变量就是块级变量,而{}区间就是块级作用域。

而在JS中不存在块级作用域。如:

{var m = 100;}
console.log(m);

在JS中可以在{}区间外读取到{}区间内声明的变量。

18.2 全局作用域

指变量可以在任何地方被读取到,则这个变量就是全局变量,而全局作用域就是指在页面中所有script标签之间的区域。

全局变量有两种:

1 全局作用域内声明的变量。

2 在函数内部除函数参数以外,不使用var定义的变量,也是全局变量。

18.3 局部作用域

如在一个函数内声明的变量,无法在这个函数范围以外的地方被读取,就说明这个变量为局部变量,而这个函数就是一个局部作用域。

时间: 2024-10-26 23:54:46

JS基础学习05的相关文章

python基础学习05(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #dict{键:值} #哈希 #注:字典是无顺序的,所以你懂的 #创建与赋值 dict1={} dict2={'name':'apply','avg':24,'sex':'man'} print dict1,dict2

js基础学习笔记(二)

2.1  输出内容(document.write) document.write() 可用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容. 第一种:输出内容用“”括起,直接输出""号内的内容. <script type="text/javascript"> document.write("I love JavaScript!"); //内容用""括起来,""里的内容直接输出.

js基础学习笔记(一)

* 在js编写过程中,尽量保持统一使用单引号 'XXXX': * 所有变量都要声明 var,避免全局函数调用的冲突: 1.1    输出内容 docment.write(‘aileLi’); 改变某ID元素样式 docment.getElementById(‘ID’).style.color=’样式参数’; 1.2   输出弹出框 alert(‘aileLi’); 1.5  什么是变量?  从字面上看,变量是可变的量: 从编程角度讲,变量是用于存储某种/某些数值的存储器. 定义变量使用关键字va

js基础学习笔记(三)

3.1 认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码: 将HTML代码分解为DOM节点层次图: HTML文档可以说由节点构成的集合,三种常见的DOM节点: 1. 元素节点:上图中<html>.<body>.<p>等都是元素节点,即标签. 2. 文本节点:向用户展示的内容,如<li>...</li&g

JS 基础学习整理

心得:   很多人都说JS的话其实是挺难的,但是也是很重要的,这句话其实一点都没错,就像这几天学习的js基础,刚开始基本学的就是一个框架和简单的算法思想就已经抬升了很大的一个难度阶级,对像我这类数学思维不是很好的人来说,其实就更是一个挑战了,但是,没有谁生来就会的,虽然我们的算法思维不是很好,但是,希望能在更多的练习中找到这种题型的解决方式,别人敲三道,我们可以敲五道,只希望在更多的练习中去克服这个难点,慢慢的去培养这种算法思想. 就这前面三天学的JS课程来说,其实比较难的也就是循环,很多时候怎

JS 基础学习随想

2012年就已经接触过了js,给我的印象:这是一门谈不上复杂的语言.大概这就是所谓的学的越浅,用的越少,觉得自己会的东西好像得更多吧!开始做基础练习题的时候觉得好像都十分简单.可是后来在做到对象数组的部分还是遇到了问题,接着发现自己其实并不非常了解js.首先来说说我在codefordream基础学习的情况吧 基础部分主要学习的有:注释符号,数据类型,算数运算,逻辑术语,判断语句,循环语句,及function. 简单的可以说说的是,由于长期使用其他语言的原因,js对于数组的遍历其实有一点区别: 最

Vue.js 基础学习 v-on 指令

在前面的基础学习中已经写了v-for和v-bind两个指令 今天学习v-on指令 v-on指令:用来绑定事件的body中 <div id="app"> </div> script中 var app = new Vue({ el : '#app', methods : { } }) 在div app中加入一个button并绑定一个点击事件 <button v-on:click="onClick">点我</button>

Vue.js 基础学习

今天我开始了Vue.js 的学习. 那么什么是Vue.js 呢? Vue.js是一套开发Web页面的JavaScript脚本框架.听起来感觉很难,不过据说,Vue.js是Web-Javascript脚本框架中最容易上手的框架.所以我便选择了先来学习这个. 要学习Vue.js首先就要获取库文件了,在网上有很多地方可以找到,我是在bootcdn上找到的 接下来我们通过Vue输出一串Hello World ! 首先引入vue. <script src="https://cdn.bootcss.c

JS基础学习08

今天主要学习到的是对象的概念及对象的创建. 22. 基本包装类型 昨天在学习JS中内置的对象时,字符串作为基本数据类型也具备对象的属性和方法,这里就是讲字符串变成了基本包装类型. 而在基本包装类型调用时会经过以下几个步骤: 1 先生成一个临时的基本包装类型的对象,var temp = new String(); 2 使用这个临时创建的对象,调用临时对象的属性和方法. 3 调用完毕之后,立即消毁,temp = null; 通过上面的三个步骤使字符串具备了对象的属性和方法. 23. 对象的概念和作用