函数分为:关键字function

  1. 匿名函数 — 没有名字的函数
  2. 有名函数 — 有名字的函数
<body>
<div></div>
<script>
     // 匿名函数 -
var oTar = document.getElementsByTagName("div");
oTar[0].onclick=function () {
alert(1)
};
     // 有名函数 — Fn 第一个字母大写
function Fn() {
alert(1)
}
Fn()
     document.onclick=Fn; // 不加括号函数不马上执行,点击后再执行。 加括号不点击就执行了
          // 这里document 选中body
  </script> 
</body>
定义函数:
    <script>
// ---------------------------
// 定义函数:
Fn(); // 定义的函数在前面后面都可以调用
function Fn() {
alert(1)
}
Fn(); // 定义的函数后面
</script>
定义函数的一些 骚写法:
    <script>
~function () {
alert(1) // 匿名函数加上() + - ! ~ 变成函数表达式,在表达式后面加上()调用
}();
+function () {
alert(2)
}();
-function () {
alert(3)
}();
!function () {
alert(4)
}(); (function () {
alert(5)
})() ; // 常见一点 (function () {
alert(6)
}())
</script>
函数表达式:
    <script>
// 函数表达式
Fn1(); // 函数表达式前面不能执行 未定义
var Fn1 = function () {
alert(1)
};
Fn1(); // 后面才执行
</script>
函数的参数:
    <script>
// 1. 实参
function Fn(x) {
alert(x)
}
Fn(1);
// 2. 形参
var a=2;
Fn1(a);
function Fn1(x) {
//-- var x; // 函数内 var 一个x,没有给值。传值进来就有值了
alert(x) // x 是局部变量,命名规则和var相同,无中生有
}
// 3. 不定参 // 参数一一对应
sum(2,2);
function sum(x,y) {
alert(x+y)
}
// 实参 多于 形参, 是参合形参对应,多余的实参存于函数arguments内
sum1(1,2,3,4);
function sum1(x,y) {
alert(x+y);
alert(arguments.length); // 4
alert(arguments[3]) // 4 参数都存在arguments内
}
// 实参少于形参 , NaN 非法
sum2(2,2);
function sum2(x,y,z) {
alert(x+y+z); // x,y 有值 , NaN
alert(z) // z没有值 undefined,可以给z默认值
}
// 给默认值
sum3(1,2);
function sum3(x,y,z) {
// 给默认值
x = x || 0; // 1 传入值就等于本身,=(true). || 遇真就停
y = y || 0; // 2
z = z || 1; // 没有值传入 =(false). z = 1
alert(x+y+z) // 1+2+1
} </script>

 函数的返回值 :

    <script>
// 函数的返回值 默认undefined
function Fn() {
oTag[0].innerHTML="zzzz";
return "ha"; // 设置返回值
}
a =Fn(); // a 接受返回值
alert(a) // "ha"
</script>

函数的作用域:

javascript解析顺序
1.(定义)先解析var function 参数
a.该步骤的var只定义变量,后面的=赋值不解析
b.该步骤的函数只定义函数,函数的执行不解析
c.重名的只留一个,var 和函数重名 函数优先
2.(执行)再从上至下执行其他代码 作用域:
作用:读写
域:范围,区域
解析:
从上至下
1 找 var 定义函数 参数
2 执行
    <script>
       alert(a); // 这三行的执行顺序 1.先var a;不给值 undefined
var a=1; // 2. 从上到下执行 第一个alert(a) a没值 undefined
alert(a); // a=1, 在第三行的alert(a) 1
</script>

  1.函数里var 变量a

    </script>
var a=1; //1.找 var a; undefined
function Fn() { // Fn=函数体
alert(2); // 2.执行 a=1,alert(2)
var a=3 // 1)找var a;undefined,
} // 2) 执行 a=3
Fn();
alert(a); // alert(a) 弹出1
</script>

  1 和 2 有无var的区别

  2.函数里 修改全局a的值

    </script>
var a=1; //1.找 var a; undefined
function Fn() { // Fn=函数体
alert(2); // 2.执行 a=1,alert(2)
a=3 // a=3,函数体没有变量a,它会修改
} // 外面的a=1 => 3
Fn();
alert(a); // 弹出 3
</script>

数字方法:Math

/*
Math 数学函数
Math.pow(16, 2)——十六的平方 256
Math.round(5.5)——四舍五入(整数)
Math.ceil(0.2)——向上取整
Math.floor(0.9)——向下取整
Math.max()——取参数中最大的值
Math.min()——取参数中最小的值
Math.random()——0-1的随机数 0--1
Math.random()*m+n // *m => 0*m--1*m ,+n => 0+n--m+n
生成 n ~ (m+n)
Math.PI——π
Math.abs()——求绝对值
*/

 number:

/*
js的六大数据类型
number
string
boolean
function
undefined
object
number数字
在js里面的小数和整数统一都是数字,-2^53-2^53,超出范围之后精度就会不准确
number方法
Number()——参数中必须能被转换成数字,否则返回NaN:
parseInt(解析的参数)——将参数转换为数字,整数部分遇到不
是数字就停
parseFloat()——将参数转换为数字,不是数字就停,否则直到
小数部分遇到不是数字就停
Num.toFixed(n)——四舍五入保留n位小数
NaN(Not a Number)
NaN 不等于自己
*/

最新文章

  1. git常见命令
  2. BASH 漏洞修复
  3. javascript组件化
  4. 解密Redis持久化
  5. 从一个新手容易混淆的例子简单分析C语言中函数调用过程
  6. android88 录音机
  7. 用VIM删除空行
  8. Hibernate查询之API查询
  9. Python学习笔记八
  10. 20165313 《网络对抗技术》 Kali安装
  11. ABA问题
  12. psi
  13. 【1】【JUC】JDK1.8源码分析之ReentrantLock
  14. sqlplus 执行 sql 文件
  15. Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
  16. ActiveMQ topic 普通订阅和持久订阅
  17. Redis-发布与订阅
  18. QT的setwindowflags的属性总结
  19. mac OS X中升级php5.5至php5.6 or php7
  20. org.apache.commons

热门文章

  1. [Machine Learning &amp; Algorithm] 随机森林(Random Forest)-转载
  2. 一定要记住这20种PS技术,让你的照片美的不行! - imsoft.cnblogs
  3. 在Docker中运行crontab
  4. GStreamer插件分类
  5. Linux中常用的函数
  6. stenciljs ionic 团队开发的方便web 组件框架
  7. 转 AngularJS 2.0将面向移动应用并放弃旧浏览器
  8. 理解git
  9. php递归函数return会出现无法正确返回想要值的情况
  10. 使用Oracle PROFILE控制会话空闲时间