JavaScript基础知识(函数)
函数的基础
函数: 把实现相同功能的代码放到一个函数体中,当想实现这个功能时,直接执行这个函数即可;减少了的冗余;高内聚,低耦合--> 函数的封装;
函数:引用数据类型;var a = 10;
function : 关键字:声明定义一个函数;
function 函数名(){}
function : 功能;方法;函数分为定义和执行;
function fn1() {
console.log(100);
}函数执行; 让里面的代码运行;
fn1();
console.log(200);
function sum(num1,num2) {// 形参;
var total = Number((num1+num2).toFixed(2));
console.log(total);
}
sum(12.8349,13.9417);
sum(102.349,131.97);
sum(1,1.09938);
函数的核心原理
函数分为两部分: 定义和执行;
function fn() {
var a = {}
a.b = 10;
console.log(1);
}
函数属于引用数据类型;空间地址类型
- 会开辟一个新的空间地址;
- 把函数体中的代码当做字符串存储到堆内存中;
- 把空间地址赋值给函数名;
console.log(fn);// 整个函数;
fn()// fn is not a function;
堆栈内存:
当浏览器加载页面时,会形成两个虚拟的内存;一个栈内存,堆内存;
函数的执行
fn();
1.首先会形成一个私有的作用域
2.形参赋值
3.变量提升
4.代码从上到下运行;
5.作用域的销毁;
函数的形参和实参
在函数括号中的参数是形参
var num = 10;
function sum(num1,num2) {//函数的入口;
console.log(num1);//
console.log(num2);//
}
如果有形参,没有对应的实参,那么形参默认存储的值是undefined;形参属于私有变量; 只存在当前的作用域下;在函数体中被var 也是私有变量;num1=100;var a=101;函数执行时传的参数是实参;
sum(1,2,3);
sum(10,20);
sum(num);
console.log(num);
console.log(num1);
console.log(a);
函数的arguments
arguments 类数组对象
function sum() {
// arguments : 函数天生自带实参参数集合
// 是一个对象数据类型的,不是数组
// []: 集合;
console.log(arguments instanceof Array);
var total = 0;
for(var i=0;i<7;i++){
total += arguments[i];
}
console.log(total);
}
sum(1,2,3,4,58,99,100);
函数的return
return 语句会终止函数的执行并返回函数的值。function 入口 形参实参;函数的出口 returnreturn 后面跟着的内容就是函数的返回值;
function sum() {
var total =0;
for(var i =0;i<arguments.length;i++){
if(typeof arguments[i]==="number"){
if(!isNaN(arguments[i])){
total += arguments[i];
}
}
}
console.log(100)
return total;
console.log(200);
}
console.log(sum("1", 199, 10, "12px", true, [], 19, NaN));
// 函数名() : 代表函数返回值; 函数体中return出来的;
// return: 结束整个函数;下面的代码不再运行;
函数名() : 代表函数返回值; 函数体中return出来的;return: 结束整个函数;下面的代码不再运行;如果函数没有return;那么函数默认返回undefined;
var newSum = sum("1",199,10,"12px",true,[],19,NaN);
console.log(newSum);
函数的匿名函数
匿名函数: 没有名字的函数;把等号右边的函数的 空间地址赋值给变量f;
: 匿名函数
function fn() {
}
函数表达式;
var f = function () {
console.log(1)
}
f();
自执行函数 ;自执行函数: 自己运行;
(function (m,n) {
console.log(1)
console.log(m);
console.log(n);
})();
!function () {}();
+function () {}();
-function () {}();
~function () {}(); function f() {
console.log(100);
return 100;
}
var a = f();
console.log(f());// 100;
匿名函数就是没有名字的函数; 函数表达式 和 自执行函数
//=>把一个没有名字的函数(有名字也无所谓)作为值赋值给一个变量或者一个元素的某个事件等:·
函数表达式·
oBox.onclick = function(){}
//=>创建函数和执行函数放在一起了,创建完成立马执行:·自执行函数·
;(function(n){})(10);
//=>以下都是自执行函数,符号只是控制语法规范
~function(n){}(10);
-function(n){}(10);
+function(n){}(10);
!function(n){}(10);
JavaScript基础知识(函数)的更多相关文章
- javascript基础知识-函数
1.javascript中函数有两种定义方式: 函数语句定义和表达式定义 //函数有定义 function test(){ console.log("This is a function&q ...
- javascript基础知识--函数定义
函数声明式 function funname( 参数 ){ ...执行的代码 } 声明式的函数并不会马上执行,需要我们调用才会执行:funname(); * 分号是用来分隔可执行JavaScript语 ...
- 学习javascript基础知识系列第二节 - this用法
通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...
- 学习javascript基础知识系列第三节 - ()()用法
总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...
- JavaScript 基础知识 - BOM篇
前言 本篇文章是JavaScript基础知识的BOM篇,如果前面的<JavaScript基础知识-DOM篇>看完了,现在就可以学习BOM了. 注意: 所有的案例都在这里链接: 提取密码密码 ...
- Javascript基础知识总结一
Javascript基础知识总结一 <!DOCTYPE html> <html> <head lang="en"> <meta chars ...
- 林大妈的JavaScript基础知识(三):JavaScript编程(2)函数
JavaScript是一门函数式的面向对象编程语言.了解函数将会是了解对象创建和操作.原型及原型方法.模块化编程等的重要基础.函数包含一组语句,它的主要功能是代码复用.隐藏信息和组合调用.我们编程就是 ...
- JavaScript基础知识:数据类型,运算符,流程控制,语法,函数。
JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECM ...
- (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识
开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用 ...
- JavaScript基础知识整理
只整理基础知识中关键技术,旨在系统性的学习和备忘. 1.在 JScript 中 null 和 undefined 的主要区别是 null 的操作象数字 0,而 undefined 的操作象特殊值NaN ...
随机推荐
- Fiddler Composer 模拟post请求
在模拟post请求的时候,发现服务器端无法接收post参数 发现原来的请求表头的设置问题加上表头 Content-Type: application/x-www-form-urlencoded 后正常
- [Python设计模式] 第13章 造小人——建造者模式
github地址:https://github.com/cheesezh/python_design_patterns 题目1 用程序模拟一个画小人的过程,要求小人要有头,身子,左手,右手,左脚,右脚 ...
- atitit 各分公司ceo cao行政经理职责.docx
1.1. 人员招募--分公司高层人员招募(每月招募四五人吧,每周一人平均) 1 1.2. 组织架构优化 1 1.3. 制度建设 健全并完善分公司内部管理机构设置,优化分公司业务管理流程: 1 1.4 ...
- python conv2d scipy卷积运算
scipy的signal模块经常用于信号处理,卷积.傅里叶变换.各种滤波.差值算法等. *两个一维信号卷积 >>> import numpy as np >>> x ...
- SQL2008R2的 遍历所有表更新统计信息 和 索引重建
[2.以下是更新统计信息] DECLARE UpdateStatisticsTables CURSOR READ_ONLY FOR SELECT sst.name, Schema_name(sst.s ...
- lua中table的遍历,以及删除
Lua 内table遍历 在lua中有4种方式遍历一个table,当然,从本质上来说其实都一样,只是形式不同,这四种方式分别是: 1. ipairs for index, value in ipair ...
- PhpStorm连接Docker容器配置xdebug断点调试
本教程主要演示xdebug在PhpStorm中配置方法. 一.环境说明 1.Mac笔记本(本教程演示过程使用的是Mac OS操作系统,和windows环境是有区别的,这一点需要特别注意): 2.在Ma ...
- 根据IP查地理位置信息
IP地址库下载地址: https://www.ipip.net/product/ip.html 使用方式(Python): https://github.com/ipipdotnet/datx-pyt ...
- pyCoreImage Learn
目录 PyCoreImage 安装 高斯模糊滤镜的例子 使用详细步骤说明 常见操作 滤镜操作 打印所有的滤镜列表 打印某个滤镜的详细信息 使用 zoomBlur 滤镜 使用 mono 滤镜 使用叠加率 ...
- Centos7下安装Oracle11g r2图形化界面数据库
我的centos7是在VMware下安装的,安装Oracle安装了好久好久,最开始的时候在网上找的两个文章,按照步骤装,有一篇写着装的时候有灰色的竖线,直接按space键或者鼠标右键closed关闭掉 ...