函数分为:关键字function

  1. 匿名函数 — 没有名字的函数
  2. 有名函数 — 有名字的函数
  1. <body>
  2. <div></div>
  3. <script>
         // 匿名函数 -
  4. var oTar = document.getElementsByTagName("div");
  5. oTar[0].onclick=function () {
  6. alert(1)
  7. };
  8.      // 有名函数 — Fn 第一个字母大写
  9. function Fn() {
  10. alert(1)
  11. }
  12. Fn()
         document.onclick=Fn; // 不加括号函数不马上执行,点击后再执行。 加括号不点击就执行了
              // 这里document 选中body
  1.   </script>
    </body>
  1. 定义函数:
  1. <script>
  2. // ---------------------------
  3. // 定义函数:
  4. Fn(); // 定义的函数在前面后面都可以调用
  5. function Fn() {
  6. alert(1)
  7. }
  8. Fn(); // 定义的函数后面
  9. </script>
  1. 定义函数的一些 骚写法:
  1. <script>
  2. ~function () {
  3. alert(1) // 匿名函数加上() + - ! ~ 变成函数表达式,在表达式后面加上()调用
  4. }();
  5. +function () {
  6. alert(2)
  7. }();
  8. -function () {
  9. alert(3)
  10. }();
  11. !function () {
  12. alert(4)
  13. }();
  14.  
  15. (function () {
  16. alert(5)
  17. })() ; // 常见一点
  18.  
  19. (function () {
  20. alert(6)
  21. }())
  22. </script>
  1. 函数表达式:
  1. <script>
  2. // 函数表达式
  3. Fn1(); // 函数表达式前面不能执行 未定义
  4. var Fn1 = function () {
  5. alert(1)
  6. };
  7. Fn1(); // 后面才执行
  8. </script>
  1. 函数的参数:
  1. <script>
  2. // 1. 实参
  3. function Fn(x) {
  4. alert(x)
  5. }
  6. Fn(1);
  7. // 2. 形参
  8. var a=2;
  9. Fn1(a);
  10. function Fn1(x) {
  11. //-- var x; // 函数内 var 一个x,没有给值。传值进来就有值了
  12. alert(x) // x 是局部变量,命名规则和var相同,无中生有
  13. }
  14. // 3. 不定参
  15.  
  16. // 参数一一对应
  17. sum(2,2);
  18. function sum(x,y) {
  19. alert(x+y)
  20. }
  21. // 实参 多于 形参, 是参合形参对应,多余的实参存于函数arguments内
  22. sum1(1,2,3,4);
  23. function sum1(x,y) {
  24. alert(x+y);
  25. alert(arguments.length); // 4
  26. alert(arguments[3]) // 4 参数都存在arguments内
  27. }
  28. // 实参少于形参 , NaN 非法
  29. sum2(2,2);
  30. function sum2(x,y,z) {
  31. alert(x+y+z); // x,y 有值 , NaN
  32. alert(z) // z没有值 undefined,可以给z默认值
  33. }
  34. // 给默认值
  35. sum3(1,2);
  36. function sum3(x,y,z) {
  37. // 给默认值
  38. x = x || 0; // 1 传入值就等于本身,=(true). || 遇真就停
  39. y = y || 0; // 2
  40. z = z || 1; // 没有值传入 =(false). z = 1
  41. alert(x+y+z) // 1+2+1
  42. }
  43.  
  44. </script>

 函数的返回值 :

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

函数的作用域:

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

  1.函数里var 变量a

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

  1 和 2 有无var的区别

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

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

数字方法:Math

  1. /*
    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:

  1. /*
    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 不等于自己
    */

JS - 函数,Math,number的更多相关文章

  1. JS Date Math Number

    Date对象 Date对象和String对象不太一样,定义了一字符串,其实就是一个String对象,就可以直接调用属性和方法. Date对象的使用,必须使用new关键字来创建,否则,无法调用Date对 ...

  2. 正则,js函数math()提取混乱字符串中多个字符串内容

    var a='start111111endstart222222endasdfasdfasdfakjsfhaksdf'+ 'start333333endstart444444end6666666666 ...

  3. js字符转换成整型 parseInt()函数规程Number()函数

    今天在做一个js加法的时候,忘记将字符转换成整型,导致将加号认为是连接符,  在运算前要先对字符井行类型转换,使用parseInt()函数   使用Number()将字符转换成int型效果更好

  4. 通用js函数集锦<来源于网络> 【二】

    通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...

  5. 通用js函数集锦<来源于网络/自己> 【一】

    通用js函数集锦<来源于网络/自己>[一] 1.返回一个全地址2.cookie3.验证用户浏览器是否是微信浏览器4.验证用户浏览器是否是微博内置浏览器5.query string6.验证用 ...

  6. 100多个基础常用JS函数和语法集合大全

    网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为//3.传统 ...

  7. JS函数

    1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏 ...

  8. js函数大全

    js函数集·字符串(String) 1.声明 var myString = new String("Every good boy does fine."); var myStrin ...

  9. 常用原生JS函数和语法集合

    luoyishan-2017-10-08 1. 输出语句:document.write(""); 2. JS中的注释为// 3. 传统的HTML文档顺序是:document-> ...

随机推荐

  1. ACM 常见词汇

    rectangular 美:  [rek'tæŋɡjələr] 英:  [rek'tæŋɡjʊlə(r)] adj. 矩形的:成直角的   grid 美:  [ɡrɪd] 英:  [ɡrɪd] n. ...

  2. CTF-练习平台-Misc之 隐写2

    二.隐写2 下载文件后解压,发现是一个png图片,依照老套路查看属性,没有发现 用WinHex打开,在图片文件中,修改图片宽度,将箭头处的A改为F,保存后打开图片 发现flag(对于png的文件格式详 ...

  3. 关于bfs与dfs的标记区别

    回顾一下dfs与bfs的使用,由于二者都需要避免走重复的路,所以二者都需要对数组进行标记 而二者的标记操作的不同点是 dfs会对数组的标记进行清除(包含两种标记,一种对形参变量的标记,这个清除是返回上 ...

  4. python 命名空间和作用域

    这是python的难点和特点, 有很多的和c/cpp不一样的地方.  它的灵活易用性造成不习惯之处. refer to: http://blog.csdn.net/cc7756789w/article ...

  5. 模板引擎之jade 学习

    jade 模板引擎在node express 开发中有较多的使用,首先我们看一个简单的使用jade 生成的html 页面的标签代码: doctype html html(lang="en&q ...

  6. windows下,java环境变量的设置,设置点击startup.bat启动tomcat

    1.首先.安装好java jdk以后环境变量设置: CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar JAVA_HOME:C:\ ...

  7. MySQL只有.frm文件恢复表结构

    http://www.ttlsa.com/mysql/mysql-utilities-mysqlfrm/ 以诊断模式读取目录中的所有的FRM文件: D:\Program Files (x86)\Eas ...

  8. 【Reporting Services 报表开发】— 如何根据明细的行数实现分页(比如每隔5行分页)

    一.新建报表:对于初学者可以参考我前面的文章[Reporting Services 报表开发]— 总结 如图1: 图 1 二.选择 new_name文本框—>添加组—>选择行组中的父组.具 ...

  9. 【appium】根据class_name定位元素

    目前没有尝试成功,等成功后补充 class_name=class可以通过UIAutomatorViewer获得.

  10. 如何为javascript代码编写注释以支持智能感知

    在使用Visual Studio做开发的时候,智能感知是非常方便的.从VS2008开始,提供了对javascript的智能感知支持.例如 上述代码中,我们先用document对象的getElement ...