• JavaScript中的函数


      什么是函数?

    函数是完成某一功能的代码段,并且可重复执行和方便管理维护的代码段。

      自定义函数

    1、通过function关键字,如:

    需要注意的问题是:函数名称不要包含特殊字符、最好含义明确、最好遵循驼峰标记法或者下划线、严格区分大小写;函数名称如果重复会产生覆盖;函数可以有参数也可以没有参数,可以有一个参数也可以有多个参数;函数通过return加返回值,如果没有return默认返回undefined;函数不调用不执行。

    2、匿名函数:函数表达式可以存储在变量中,变量也可以作为一个函数使用;可以将匿名函数作为参数传递给其他函数,接收方函数就可以通过所传递进来的函数完成某些功能;可以通过匿名函数来执行某些一次性的任务。

     

    3、通过function()构造函数,如:

      如何调用函数?

    1、作为一个函数调用:通过函数名称()进行调用,如果有参数传递相应参数即可;在HTML中默认的全局对象是HTML页面本身,所以函数是属于HTML页面。在浏览器中的页面对象是浏览器窗口(window)对象。所以函数会自动变为window对象的函数,也可以通过window.函数名称()进行调用,如:

    2、全局对象:当函数没有被自身的对象调用时,this的值就会变成就会全局对象,在web浏览器中全局对象是浏览器窗口window对;函数作为全局对象调用,会使this的值称为全局对象,使用window对象作为一个变量容易造成程序崩溃。

    3、函数作为方法调用:可以将函数定义为对象的方法进行调用。

     

    4、使用构造函数调用函数:如果在函数调用前使用了new关键字,则调用了构造函数。

    5、作为回调函数调用函数:call()方法和apply()方法。

      函数中的参数

    1、函数可以有参数也可以没有参数,如果定义了参数,在调用函数的时候没有传值,默认值设置为undefined:

    2、在调用函数时如果传递参数超过了定义时参数,js会忽略掉多余参数:

    3、js中不能直接写默认值,可以通过arguments对象来实现默认值效果:

     

    4、可以通过arguments对象实现可变参数的函数:

     

    5、通过值传递参数在函数体内对变量做修改不会影响变量本身:

    6、通过对象传递参数在函数体内对变量做更改会影响变量本身:

      变量的作用域

    1、局部变量:在函数体内声明的变量,只能在函数体内使用。

    注意:在函数内不用var定义的变量是全局变量

    2、全局变量:函数体外声明的变量,在变量声明开始到脚本结束都可以使用。

    注意:尽量控制全局变量的数量,容易引发bug;最好总是使用var语句来声明变量。

      JavaScript中的全局函数

    1、parseInt(string,radix):返回转换成整数的值。当参数radix的值为0,或者没有设置这个参数,parseInt()会根据string来判断数字的基数,规则为:

    如果string以0x开头,parseInt()会把string的其余部分解析为十六进制的整数;

    如果string以0开头,那么ECMAScript v3允许parseInt()的一个实现把其后的字符解析为八进制或十六进制的数字;

    如果string以1~9的数字开头,parseInt()将把它解析为十进制的整数;

    如果字符串以合法字符开始,截取合法字符;

    如果字符串的第一个字符不能被转换为数字,parseInt()会返回NaN;

    在字符串以"0"为开始时旧的浏览器默认使用八进制基数。ECMAScript 5,默认的是十进制的基数;

    在字符串中开头和结尾的空格是允许的。

     

     2、parseFloat(string):返回转换成浮点型的值。该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。

     

    3、isFinite(value):检测某个是是否是无穷值。如果number是NaN或者+Infinity或者-Infinity的数,isFinite()返回false。

    4、isNaN(value):检测某个值是否是NaN。isNaN()检测是否是非数字值,如果值为NaN返回true,否则返回false。

    5、encodeURI(uri):将字符串编码为URI。使用 decodeURI() 方法可以编码URI(通用资源标识符:UniformResourceIdentifier,简称"URI");对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的: , / ? : @ & = + $ # (可以使用 encodeURIComponent() 方法分别对特殊含义的 ASCII 标点符号进行编码。).

    6、decodeURI(uri):解码某个个编码的URI。

    7、encodeURIComponent(uri):将字符串编码为URI组件。该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) ;其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

    8、decodeURIComponent():解码一个编码的URI组件。

    9、escape():对字符串进行编码。该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换; escape()函数不能用于编码 URIs(通用资源标识符(UniformResourceIdentifier,简称"URI"))。

    10、unescape():解码由escape()编码的字符串。

    11、eval():将JavaScript字符串当作脚本来执行。如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句;eval()函数是一种由函数执行的动态代码,比直接执行脚本慢很多;慎重使用eval()函数,尽量不用,保证程序的安全性。

    12、Number(object):把对象的值转换为数字。如果对象的值无法转换为数字,Number()函数返回NaN;如果参数的Date对象,Number()返回从1970年1月1日到现在所经历的毫秒数

     

    13、String():把对象的值转换为字符串。String() 函数返回与字符串对象的toString()方法值一样

     

      特殊形式的函数

    函数也是数据:JavaScript中的函数也是一种数据类型,只不过这种特殊类型有两个重要的特性;他们所包含的是代码,他们是可以执行的。

      自调用函数

     

  • 相关阅读:
    数据库的逻辑结构与物理结构
    HTTP笔记整理(1)
    当我看懂这张图的时候很痛苦~~~
    软件测试面试分享(转)
    达梦(DM)数据库Linux部署安装
    进阶的小小测试~软件测试不得不知的基础知识
    软件测试分类
    浅说软件需求分析
    浅说《测试用例》----给测试新手的
    软件测试人员两极分化
  • 原文地址:https://www.cnblogs.com/fengxiongZz/p/6591580.html
Copyright © 2020-2023  润新知