精华内容
下载资源
问答
  • 在python中,我们可以用一个变量来存放函数。示例: a = len length = a([1,2,3,4,5]) print(length) 在上面我将len()函数赋值给了变量a。那么我们以后我们使用len()函数的的时候就完全可以使用a这个变量来代替了。...

    python中使用函数作为参数

    在python中,我们可以用一个变量来存放函数。示例:

    a = len
    length = a([1,2,3,4,5])
    print(length)
    

    在上面我将len()函数赋值给了变量a。那么我们以后我们使用len()函数的的时候就完全可以使用a这个变量来代替了。

    既然我们可以用一个变量来存放函数,那么函数一可以当作一个函数的参数使用。

    示例代码:

    def add(x,y,f):
        return f(x)+f(y)
    
    result = add(1,-2,abs)
    print(result)
    

    在上面的函数中,拥有3个变量,x,y表示传入的值,f表示传入的函数

    我们在调用此函数的时候就传入了1,-2两个值,然后将abs函数传入了进去,(abs()就是获取值的绝对值)

    这样,我们就实现了将函数作为参数传入参数中去。

    再例如,我们需要求
    在这里插入图片描述
    这个表达式的值,那么我们可以这样做:

    import math
    
    def add(x,y,f):
        return f(x)+f(y)
    
    result = add(1,-2,abs)
    result1 = add(9,16,math.sqrt)
    print(result,result1)
    

    这样,我们就可以求出上面表达式的值了。

    python中的map()函数

    map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f依次作用在list 的每个元素上,得到一个新的 list 并返回。

    例如,将一个列表中的所有值都变为原来的平方

    def func(x):
        return x*x
    
    new_list = map(func,[1,2,3,4,5,6,7,8,9])
    
    for list in new_list:
        print(list)
    

    需求:假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:

    输入:['adam', 'LISA', 'barT']
    输出:['Adam', 'Lisa', 'Bart']
    

    代码:

    def format_name(s):
        return s[0].upper() + s[1:].lower()
    
    new_list = map(format_name,['adam', 'LISA', 'barT'])
    for list in new_list:
        print(list)
    

    python中的reduce()函数

    reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。

    在python3中,reduce()函数已经从全局函数中移除了,放在fucntools,所以我们首先得导入从fucntools中导入reduce()函数

    from functools import reduce
    
    def add1(x,y):
        return x+y
    
    sum = reduce(add1,[1,3,5,7,9])
    print(sum)
    

    执行上面的代码的时候,reduce()函数会做一下计算:

    1. 先计算头两个元素:f(1, 3),结果为4;
    2. 再把结果和第3个元素计算:f(4, 5),结果为9;
    3. 再把结果和第4个元素计算:f(9, 7),结果为16;
    4. 再把结果和第5个元素计算:f(16, 9),结果为25;
    5. 由于没有更多的元素了,计算结束,返回结果25。

    上述计算实际上是对 list 的所有元素求和。虽然Python内置了求和函数sum(),但是,利用reduce()求和也很简单。

    reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100,计算:

    sum = reduce(add1,[1,3,5,7,9],100)
    

    那么结果将会变成125,因为第一轮计算是:计算初始值和第一个元素:f(100, 1),结果为101。

    Python内置了求和函数sum(),但没有求积的函数,我么来尝试一下用reduce()函数求积:
    例如:

    输入:[2, 4, 5, 7, 12]
    输出:2*4*5*7*12的结果
    

    代码:

    def prod(x,y):
        return x*y
    
    sum = reduce(prod,[2,4,5,7,12])
    print(sum)
    

    这样就能达到我们想要的效果了。

    python中filter()函数

    filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

    例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数:是奇数返回True,否则返回False

    def is_odd(x):
        return x%2 == 1
    

    然后使用filter()过滤偶数:

    new_list2 = filter(is_odd,[1,2,3,4,5,6,7,8,9])
    for list in new_list2:
        print(list)
    

    这样就能将偶数过滤掉了。

    利用filter(),可以完成很多有用的功能,例如,删除 None 或者空字符串:

    def is_not_empty(s):
        return s and len(s.strip()) > 0
    
    new_list4 = filter(is_not_empty, ['test', None, '', 'str', '  ', 'END'])
    for list in new_list4:
        print(list)
    

    需求:请利用filter()过滤出1~100中平方根是整数的数,即结果应该是:
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    def is_sqr(x):
        r = int(math.sqrt(x))
        return r*r == x
    
    test_list = []
    for i in range(1,101):
        test_list.append(i)
    new_list3 = filter(is_sqr,test_list)
    for list in new_list3:
        print(list)
    

    python中返回函数

    Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数!

    示例:

    def f():
        print('我是外层函数')
        def g():
            print('我是内层函数,被返回的函数')
        return g
    
    f()
    print('*'*10)
    test = f()
    print('*'*10)
    test()
    

    然后我们可以查看运行结果
    在这里插入图片描述

    可以看到,当我们执行函数f的时候,并不会执行里面的函数。当我们用一个变量test接收f函数的返回值时,然后再调用test()才执行了g函数里面的代码

    需求:请编写一个函数calc_prod(lst),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。

    from functools import reduce
    
    def calc_prod(lst):
        def lazy_prod():
            def f(x, y):
                return x * y
            return reduce(f, lst, 2)
        return lazy_prod
    f = calc_prod([1, 2, 3, 4])
    result = f()
    print(result)
    

    这样就实现了我们的需求了。

    python闭包

    闭包本身是一个晦涩难懂的概念,在这里我们以简单粗暴地理解为闭包就是一个定义在函数内部的函数,闭包使得变量即使脱离了该函数的作用域范围也依然能被访问到。

    例如:

    def func(x):
        def func1(y):
            return x + y
        return func1
    
    test = func(4)
    print(test)
    tes1 = test(5)
    print(tes1)
    

    在上面的func函数中拥有x变量,但是在func1函数中并没有x变量,但是因为python中函数支持闭包操作,也就是在函数中定义一个函数可以访问函数范围之外的变量。

    python中lambda表达式

    简单来说,编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。其一般有如下几种使用方式:

    f= lambda x: x*x
    print(f(3))
    

    上面的代码相当于

    def test(x):
        return x*x
    print(test(3))
    

    参考连接:https://www.imooc.com/video/6064

    展开全文
  • 函数变量和返回值

    千次阅读 2018-01-03 20:35:03
    局部变量:在Python中的任何变量都有特定的作用域,在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量 全局变量:在一个文件顶部定义的变量可以供文件中的任何...
    一、函数的变量
    1.函数变量分为局部变量和全局变量
    局部变量:在Python中的任何变量都有特定的作用域,在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量
    全局变量:在一个文件顶部定义的变量可以供文件中的任何函数调用,这些可以为整个程序所使用的变量称为全局变量。
    2.看个例子,来了解一下局部变量和全局变量
    (1)
    def fun():
    x = 100
    print x
    fun()
    print x

    .

    说明:x 在函数内部,他就是一个内部变量,只在函数内部生效,当结束了函数,x变量就无效了。作用域在函数内部。
    (2)
    x = 'global var'
    def fun():
    print x
    fun()
    print x


    说明:全局变量定义在文件顶部,即使函数内部也可以使用全局变量。但是不能对他进行修改。
    (3)
    x = 100
    def fun():
    x+=1
    print x
    fun()

    说明:这样写会报错,提示一个异常,局部变量X 参考之前定义的变量。不能修改全局变量。
    如果要对全局变量进行修改,可以用global 来声明。
    x = 100
    def fun():
    global x
    x+=1
    print x
    fun()
    print x

    说明:global 声明局部变量x为全局变量,所以我们可以对全局变量x进行修改操作。并在全局生效。
    (4)
    x = 100
    def fun():
    global x
    x+=1
    global y
    y = 1
    fun()
    print x
    print y

    说明:在函数内部定义了变量y 通过global声明后,外部也能打印出y的值,如果函数没有调用,函数内部定义的x和y 变量都不会生效。

    2.locals()方法
    locals() 函数会以字典类型返回当前位置的全部局部变量
    x = 100
    def fun():
    x = 1
    y = 1
    print locals()
    fun()

    会打印出函数内部里的所有变量和对应的值,返回字典形式,这是在内部执行的locals。在外部也可以执行locals
    x = 100
    def fun():
    x = 1
    y = 1
    print locals()
    fun()
    print locals()

    下面的这个字典是,打印的是脚本执行的时候,有哪些变量执行。
    二、函数的返回值。
    1.在前面的练习当中,我们有写过很多的print,在真实情况下,一般都是使用return。
    2.什么是函数返回值?
    函数被调用后会返回一个指定的值。如果没有定义返回值得话默认会返回一个None。
    用法是:return "返回值"
    返回值可以是任意类型,字典 序列等等都可以。
    当return执行后,函数终止。return后面的代码都不会再执行了。
    3.看几个小例子
    (1)
    def fun():
    print("hello world")
    print fun()

    可以看到print fun函数以后 还出现了一个None 这就是函数的返回值,因为我们没有定义返回值,默认就是返回None
    def fun():
    print("hello world")
    return True
    print fun()

    结果还是出现2个。没有出现3个。这是因为函数在遇上了return后就会终止,结束了。后面的代码就不会再运行了。

    (2)把上次写的判断数字脚本优化一下。
    import sys
    import os
    def isNum(s):
    for i in s:
    if i not in '0123456789':
    return Flase
    return True
    for i in os.listdir('/proc'):
    if isNum(i):
    print(i)

    思路: 如果定义的S参数不是数字就返回一个False。如果是数字就返回return
    然后对第二个的for循环做判断,如果返回的结果的真,那么就打印出来。
    函数做返回值,就是利用这个返回值来做一些事情,比如可以做判断。
    在把代码进行简化一下:
    import sys
    import os
    def isNum(s):
    if s.isdigit():
    return True
    return False
    for i in os.listdir('/proc'):
    if isNum(i):
    print(i)

    输出结果还是一样的。但是这样更简单了、
    这里用到的一个字符串方法:isdigit()判断该字符串是否是数字,如果不是返回False.如果是就返回Trun。

    练习:
    1. 设计一个程序,从终端接收10个数字,并使用自己编写的排序函数,对10个数字排序后输出
    list1 = []  #新建一个空列表
    for i in range(1,11):   #输入10个数
        num = raw_input("Please input {0} number: ".format(i))  #提示输入10个数
        if num.isdigit():  //判断是否是数字
            list1.append(num)   //如果是数字就追加进列表
    def sortNumber():      
        count = len(list1)   #定义长度
        for i in range(0,count):  #定义第一个数的循环范围,也是次数
            for j in range(i+1,count):  #取第二个数比较的范微,也是次数
                if int(list1[i]) > int(list1[j]): #判断第一个数是否比第二个数大
                    list1[i],list1[j] = list1[j],list1[i]  #如果大于,就调换位置。重新赋值。
        return list1
    print sortNumber()


    2. 设计一个函数,接收一个英文单词,从文件中查询该单词的汉语意思并返回

    展开全文
  • JavaScript 函数 将脚本编写为函数,就可以避免页面载入时执行该脚本。 打印 定义的函数名 就相当于打印这整个函数 函数包含着一些代码,这些代码只能被事件激活,或者在函数被调用时才会执行。 你可以在页面中...

    JavaScript 函数

    将脚本编写为函数,就可以避免页面载入时执行该脚本。

    打印 定义的函数名 就相当于打印这整个函数

    函数包含着一些代码,这些代码只能被事件激活,或者在函数被调用时才会执行。

    你可以在页面中的任何位置调用脚本(如果函数嵌入一个外部的 .js 文件,那么甚至可以从其他的页面中调用)。

    创建函数的语法:
    function 函数名(var1,var2,...,varX){

            代码...

            }

    注意:无参数的函数必须在其函数名后加括号

    函数的调用必须是函数名后面跟(),有参给参无参不给

    函数名是什么?  函数名 == 整个函数。

    函数加载问题?   JS加载的时候,只加载函数名,不加载函数体。所以如果想使用内部的成员变量,需要先调用这个函数函数。

    第一种:函数声明(最常用)

    function 函数名(){ 

          代码...

        }

    第二种:函数表达式

    var text =  function (var1,var2,...,varX) {

        代码……

    }

    第三种:面向对象(构造函数)

    var  fn = new  Function(var1,var2,...,varX);

    第四种:匿名函数(即没有名字的函数)

    function (){

        代码……

    }

    特殊的函数:

    第一种:回调函数(一个函数作为另一个函数的参数进行传递)

    function fn(a,b,){

        return a()+b();

    }

    var  one = function(){

        return 1;

    }

    var two = function(){

        return 2:

    }

    //函数调用

    fn(one,two)

    第二种:匿名回调函数(将匿名函数作为参数传递的函数)

    第三种:自调函数(自己定义自己调用,别人不能调用的函数)

    (function () {

        alert("a");

    }) ();

    第四种:内部私有函数(函数里面还有函数)

    内部私有函数的表现形式:

        function fn() {
            function fn1() {
                console.log("fn1");
            }
        }
        fn();
    //    fn1();//如果执行fn1()会报错

    内部私有函数的解决办法:(通过函数表达式的方式将内部的那个函数给放到外部)

    var fn2 ;
    function  fun() {
        fn2=function () {
            alert("fn2");
        }
    }
    fun();
    fn2();
    

    闭包:闭包就是能够读取其他函数内部变量的函数/在一个函数内部的函数,闭包包含自由(未绑定到特定对象)变量,这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量),闭包是将函数内部和函数外部连接起来的桥梁。

    //作用域、上下文
    function a() {
        var i=0;
        function b() {
            console.log(++i);
        }
        return b;
    }
    var c = a();
    c();
    

    首先函数c是无法访问函数a中的变量的,此时通过在函数a内构造一个内部函数b,b自然是可以读取a中的变量的,此时c便可以通过b来读取a中的变量,这便是闭包了。

    如果之后再执行c(),此时会输出1,这是为什么呢?

    这和js的垃圾回收机制有很大的关系,由于闭包c的存在,函数b依赖于a中的变量,使得函数a的i始终存在在内存。

    使用闭包的注意点:

    1)由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除(i = null;)。

    2)闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。

    递归

    递归:就是函数内部自己调用自己。  必须有跳出条件   必须在外部执行这个函数才能形成递归

    注意:别忘记 JavaScript 中大小写字母的重要性。"function" 这个词必须是小写的,否则 JavaScript 就会出错另外需要注意的是,必须使用大小写完全相同的函数名来调用函数。

    return 语句

    return 语句用来规定从函数返回的值。

    因此,需要返回某个值的函数必须使用这个 return 语句。

    function prod(a,b){

           x=a*breturn x;

    }

    注意:

    1. 如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined

    2. 如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值

    3. 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值   也是:undefined

    4. 函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。

    变量和作用域(隐式全局变量和变量声明提升)

    变量和作用域(函数中的变量需要函数执行后才能执行)

    一、全局变量(成员变量)

    哪里都可以访问到的变量。

    (进入script立即定义的变量或函数外部和函数没有var的变量)

    二、局部变量(只有局部能够访问的变量)

    函数内部的变量,只有函数内部可以访问到。

    (函数内部用var定义的变量和形参)

    手动清除变量: aaa = null

    作用域:全局变量一直存在,手动消失;局部变量函数调用完就被回收(特例:闭包不会消失需要手动消失)。

    隐式全局变量

    隐式全局变量就是隐藏的全局变量不好被发现。(没有被var声明的变量可看成是全局变量)

    function fn(){

        var a  =  b =  c  = 1;   // b和c就是隐式全局变量

    }

    注意:

    function fn(){

        var a  =  b =  c  = 1;   // b和c就是隐式全局变量(等号)

        var a = 1;  b = 2;  c = 3;    // b和c就是隐式全局变量(分号)

        var a = 1 ,  b = 2 ,  c = 3;   // b和c就不是隐式全局变量(逗号)

    }

    变量声明提升(出现原因:预解析)

    函数中,定义变量在使用变量之后。

    var/function声明只提升变量名,不提升变量值,容易出现undefined。计算后形成NaN。

    function fn(){

        // var aaa;

        console.log(aaa);

        var aaa = 1;

    }

    //提前看一眼这个习惯叫什么呢?  预解析!
    //变量声明提升:在预解析的时候,成员变量和函数,被提升到最高位置,方便其他程序访问。
    //变量声明提升特点:成员变量只提升变量名,不提升变量值。但是,函数是所有内容全部提升。(function直接定义的)
    //函数范围内照样会出现变量声明提升
    //什么情况容易出现变量声明提升:使用变量在定义变量之前。

    函数范围内,照样适用。

    预解析过程:

    1. 语法检查,如果有错误,直接停止后续步骤不再运行。

    2. 把变量和函数的声明提升到当前作用域的最前面,只会提升声明,不会提升赋值和调用。

    3. 先提升变量后提升函数,如果函数和变量同名,则被替换;

    代码执行过程

    变量的赋值,函数的调用,循环判断等,根据代码由上往下顺序执行;

    小知识:

    1.函数不调用不执行

    2.函数名等于整个函数

    3.加载函数的时候,只加载函数名,不加载函数体(原因:函数里面的值不加载不执行)

    4.就近原则使用变量(同名变量)

    5.两个平级的函数变量不会相互影响,但可以使用相同的参数。

    如有不足请多多指教!希望给您带来帮助!

    展开全文
  • javaScript学习笔记(一)js基础

    万次阅读 多人点赞 2018-09-21 10:07:18
    js是弱类型语言,不重视类型的定义,但js会根据为变量赋值的情况判断变量是何种类型: 数值型:var i = 1; var d = 2.35; 字符串:var str = "用心学习"; 布尔型:var b = true; 对比Java:java是强类型的语言...

     

                                          公众号  关注一波  不定期分享视频资料

     

                                                                   

    一、简介

    1、概述:

    JavaScript是目前web开发中不可缺少的脚本语言,js不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScript代码。

    诞生于1995年,当时的主要目的是验证表单的数据是否合法

    JavaScript本来应该叫Livescript,但是在发布前夕,想搭上当时超热的java顺风车,临时把名字改为了JavaScript。(也就是说js跟java没有关系,当时只是想借助java的名气)。

    js组成部分:

    (1)核心(ECMAScript):这一部分主要是js的基本语法。

    (2)BOM:Brower Object Model(浏览器对象模型),主要是获取浏览器信息或操作浏览器的,例如:浏览器的前进与后退、浏览器弹出提示框、浏览器地址栏输入网址跳转等操作等。

    (3)DOM:Document Object Model(文档对象模型),此处的文档暂且理解为html,html加载到浏览器的内存中,可以使用js的DOM技术对内存中的html节点进行修改,用户从浏览器看到的是js动态修改后的页面。(增删改查)

    2、特点:

    1. 交互性(它可以做的就是信息的动态交互)
    2. 安全性(不允许直接访问本地硬盘)
    3. 跨平台性(只要是可以解析js的浏览器都可以执行,和平台无关)

    3、和Java区别:

    4、作用

    avaScript 被用来改进设计、验证表单、检测浏览器、创建cookies,等等。JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的浏览器中运行,比如: Internet Explorer、 Maxthon、Mozilla、Firefox、Netscape、Chrome和 Opera等。

    在目前学习阶段只要记住最常用的二个:(1)运态修改html及css代码 (2)验证表单

    5、书写位置

    5.1、内嵌式:

    理论上js可以书写在页面的任意位置。

    <script>

    alert("内嵌式")

    </script>

    5.2、外链式:

    首先新建一个文件类型为.js的文件,然后在该文件中写js语句,通过script标签对引入到html页面中。

    <script src="js文件路径地址">这里不能写js语句</script>

    5.3、行内式:

    直接书写在标签身上,是一个简写的事件,所以又称之为事件属性。     onclick单击事件

    <input type="button" value="点我呀!" onclick="alert('点我干啥!^6^');">
    <button onclick="alert('恭喜你,中 500 万.');">点我呀!</button>
    

    6、注释:

    单行注释:		//	注释语句		快捷键ctrl+/
    多行注释:		/* 注释语句 */    快捷键ctrl+shift+/   
    注意:多行注释相互不能嵌套使用,只能在多行注释里面使用单行注释!
    

    7、数据类型:

    Js中的数据类型:
     

    数值型:number(凡是数字都是数值型,不区分整数和小数)
    字符串:string(凡是引号包裹起来的内容全部都是字符串)
    布尔:boolean(true、false)
    对象类型:object(特殊取值null)
    未定义型:undefined
    

    对比java中的数据类型:

    整数:byte short int long
    小数:float double
    字符:char 
    布尔:boolean
    字符串:String

    8、变量:

    8.1、定义:就是存放数据的、内疗可以存储任意数据

    8.2、声明变量:
     

    var 变量名称 = 存储的数据;   	(variable 变量)

    8.3、变量命名规范:

    1.	只能由字母、数字、_(下划线)、$(美元符号)组成。
    2.	不能以数字开头。
    3.	命名中不能出现-(js会理解成减号进行减法的操作),不能和关键字冲突。
    

    js是弱类型语言,不重视类型的定义,但js会根据为变量赋值的情况自定判断该变量是何种类型:

    数值型:var i = 1;	var d = 2.35;
    字符串:var str = "用心学习";
    布尔型:var b = true;
    

    对比Java:java是强类型的语言,注重类型的定义,Java定义类型如下:

    整型:int i = 1;
    浮点型:double d = 2.35;
    字符串:String str = “用心学习”;
    布尔型:boolean b = true;
    

    总结:js中变量的定义。只要加一个var就行。java则使用什么类型的变量就要定义什么类型的。

    9、检测数据类型:

    typeof(value); 或者typeof value;     返回这个变量的类型. 
    说明 : 同一个变量, 可以进行不同类型的数据赋值.
    
    <script type="text/javascript">
        
        var a;
        alert(typeof a);  // undefined
    
        a = 998;
        alert(typeof a); // number
    
        a = "用心学习";
        alert(typeof a); // string
    
        a = true;
        alert(typeof a); // boolean
        
    </script>
    

    10、算术运算符

    +	-	*	/	%	++	--

    注意:

    1.	由于js中的小数和整数都是number类型,不存在类似整数除以整数还是整数的结论。
    2.	字符串和其他的数据使用+号运算,会连接成一个新的字符串。
    3.	字符串使用除了+以外的运算符:如果字符串本身是一个数字,那么会自动转成number进行运算
    ,否则就会返回一个NaN的结果,表示这不是一个数字。NaN:not a number
    
    <script>
    
        alert(1234 / 1000 * 1000); // 1234
      
        var s = "12";
         s -= 10;
        alert(s);  // 2
     
        var s = "aa";
        s -= 10;
        alert(s);  // NaN       Not a Number 不是一个数字
    
        var s = "12";
        s += 10;
        alert(s);       // 1210 
    
    </script>
    

    11、关系(比较)运算符

    >		>=		<		<=  	!=		
    ==	等于(只比较内容)	===	恒等于(比较内容的同时还要比较数据类型)
    注意:关系运算符返回的结果只有两个:true / false
    
    <script>
    
        // 请问1 : 3 > 5, 结果为 ?
        alert(3 > 5);   // false
    
        // 请问2 : “22” == 22  结果为 ?
        alert("22" == 22); // true  (仅仅判断数值)
    
        // 请问3 : “22” === 22  结果为 ?
        alert("22" === 22);  // false  (恒等于, 数值和类型都要相等)
        
    </script>
    

    12、逻辑运算符

    &&	 	与		true&&false		====>false
    || 		或		true||false			====>true
    ! 		非		!true				====>false
    false(理解):false,  0,  null,  undefined 
    true(理解):true, 非0,  非null,  非undefined
    
    针对 && 顺口溜: 找第一个出现的假值. (一假即假)
    针对 || 顺口溜: 找第一个出现的真值. (一真即真)

    演示一:

    <script>
    
        // 短路与 (一假即假)
        // 口诀 : 找第一个为假的值.
    
        // 请问1 :  8 < 7 && 3 < 4, 结果为 ?
        alert(8 < 7 && 3 < 4);  // false
    
        // 请问2 :  -2 && 6 + 6 && null 结果为 ?
        alert(-2 && 6 + 6 && null); // null
    
        // 请问3 :  1 + 1 && 0 && 5  结果为 ?
        alert(1 + 1 && 0 && 5); // 0
    
    </script>
    

    演示二:

    <script>
    
        // 短路或 : 一真即真.
        // 口诀 : 找第一个为真的值.
    
        // 请问1 :  0 || 23 结果为 ?
        alert(0 || 23); // 23
    
        // 请问2 :  0 || false || true  结果为 ?
        alert(0 || false || true); // true
    
        // 请问3 :  null || 10 < 8 || 10 + 10结果为 ?
        alert(null || 10 < 8 || 10 + 10);  // 20
    
        // 请问4 :  null || 10 < 8 || false结果为 ?
        alert(null || 10 < 8 || false); // false
        
    </script>
    

    13、三元运算符:

    条件?表达式1:表达式2
    如果条件为true,返回表达式1的结果
    如果条件为false,返回表达式2的结果
    

    演示:

    <script>
    
        // 请问1 :  3 ? “aaa” : “bbb” 结果为 ?
        alert(3 ? "aaa" : "bbb");       // aaa
    
        // 请问2 :  0 ? “ccc” : “ddd”  结果为 ?
        alert(0 ? "ccc" : "ddd");       // ddd
        
    </script>
    

    14、if条件语句

    这个和Java中if语句一样。

    演示:

    <script>
    
          var score = 59;
    
          if (score >= 90) {
              alert("优秀");
          } else if (score >= 80) {
              alert("良好");
          } else if (score >= 60) {
              alert("及格");
          } else {
              alert("不及格");
          }
    
      </script>
    

    15、switch分支结构

    这个和java中switch结构一样。只是Java中表达式为:常量 整型(去long)、字符、字符串

    演示:

    <script>
    
          var score = 59;
    
          // 需求 : 将需要一个整型数值, 不想要小数点.
          // window 对象的 parseInt 方法.
          score = window.parseInt(score / 10 + "");
          // alert(score);
    
          switch (score) {
              case 10:
              case 9:
                  alert("优秀!");
                  break;
              case 8:
                  alert("良好!");
                  break;
              case 7:
              case 6:
                  alert("及格!");
                  break;
              default:
                  alert("不及格!");
                  break;
          }
    
      </script>
    

    16、循环结构 while、do-while. for;

    while(循环条件){循环体;}
    do{循环体;}while(循环条件);
    for(循环变量赋初值;循环条件;循环变量增值){循环语句;}
    console.log(...); 以日志的形式在控制台输出结果!
    

    演示:

    <script>
    
        // 需求 : 统计 1~100 之间能够被3和7整除的数字个数
    
        var count = 0;
    
        // 1. 遍历 1~100 之间的所有整型数值
        for (var i = 1; i <= 100; i++) {
    
            // 2. 判断
            if (i % 3 == 0 && i % 7 == 0) {
                // alert(i);
                console.log(i);
                // 3. 累加个数
                count++;
            }
        }
    
        // 4. 查看结果
        // alert(count);
        console.log(count);
    
    

    console.log显示如下:

    17、循环嵌套

    演示案例9*9乘法表

     <style>
            table {
                /* 将 table 表格的线变成了细线 */
                border-collapse: collapse;
                /*color: red;*/
                border-color: red;
            }
        </style>
    
        <script>
    
            // 需求 : 九九乘法口诀表
            document.write("<table border='1px solid red' cellspacing='0' cellpadding='8px'>");
            document.write("<caption>九九乘法口诀表</caption>");
            for (var i = 1; i <= 9; i++) {
                document.write("<tr>");
                for (var j = 1; j <= i; j++) {
                    document.write("<td>");
                    document.write(j + "*" + i + "=" + (j*i) + "&nbsp;&nbsp;&nbsp;&nbsp;");
                    document.write("</td>");
                }
                document.write("</tr>");
            }
            document.write("</table>");
    
        </script>
    
    

    18、自定义函数

    函数是命名的独立的语句段,这个语句段可以被当作一个整体来引用和执行:

    格式:

    function 函数名(形式参数){函数体}
    调用函数:函数名(实际参数);
    

    18.1、函数只有被调用后才会执行

    18.2、如果函数需要返回值、直接使用return 返回、不会像java一样要考虑返回值的类型

    <script type="text/javascript">
    
        // 定义一个函数 : function
        function demo2() {
            return 666;
        }
    
        // 调用函数 :
        alert(demo2());
    
    </script>
    

    18.3、如果函数需要传递参数、不需要指定参数的类型、直接使用变量即可

    <script type="text/javascript">
    
        // 定义一个函数 : function
        function demo3(a, b) {
            return a + b;
        }
    
        // 调用函数 :
        alert(demo3(10, 20));//显示30
    
    </script>
    

    18.4、js中出现二个重名的函数名、后者会把前面的覆盖掉

    对比java、java有重载(同名不同参)、重写(同名同参同返回值类型、方法体不一样)

    演示:

    <script type="text/javascript">
    
        // 定义一个函数 : function
        function demo4(a, b) {
            alert("调用1...");
        }
    
       function demo4() {
           alert("调用2...");
       }
    
        demo4(10, 20);
        demo4();
    
    </script>
    

    会显示二次下面的图片:

    19、匿名函数

    匿名函数是没有名字的函数

    function(形式参数){函数体}
    调用方式:将匿名函数赋值给一个变量,通过变量名调用函数
    定义函数并赋值给变量:var fn = function(形式参数){函数体}
    调用函数:fn(实际参数);
    

    演示:

    <script type="text/javascript">
    
        // 匿名函数 : 没有名称的函数
        var func = function(i, u) {
            alert(i + " love " + u);
        }
    
        // 调用函数 :
       func("柳岩", "小白");//显示柳岩love小白
    
    </script>
    

    20、案例-轮播图

    说明1 : script 标签需要放在 body 标签之后.
    
    说明2 : window.setInterval(“字符串函数名称()”, 时间毫秒数);
    
    说明3 : window.setInterval(函数名称, 时间毫秒数);
    
    说明4 : window.setInterval(匿名函数, 时间毫秒数);            推荐使用
    <head>
        <meta charset="UTF-8">
        <title>轮播图</title>
    
        <style>
    
            div {
                width: 80%;
                margin: 50px auto;
            }
    
            img {
                width: 100%;
            }
    
        </style>
    
    </head>
    <body>
        <div class="container">
            <img src="../img/01.jpg" alt="图片">
        </div>
    </body>
    

    实现一:

    <script>
    
        // 需求 : 动态获取页面中的 img 标签, 然后修改 img 标签的 src 属性.
        // 1. 获取 img 标签
        var img = document.getElementById("img");
        // alert(img);
    
        // 定义一个变量
        var count = 1;
    
        // 1.2 定义一个函数
        function changeImageSrc() {
            count++;
            img.src = "../img/0"+count+".jpg";
    
            // 判断
            if (count == 8) {
                count = 0;
            }
        }
    
        // 2. 循环切换图片
        // window.setInterval(函数, 时间毫秒); 在指定的时间毫秒间隔, 不断调用第一个参数传入的函数.
        // 调用方式一 :
        // window.setInterval("changeImageSrc()", 1000);
        // 调用方式二 :
        window.setInterval(changeImageSrc, 1000);
    
    </script>
    

    实现二:

    <script>
    
        // 需求 : 动态获取页面中的 img 标签, 然后修改 img 标签的 src 属性.
        // 1. 获取 img 标签
        var img = document.getElementById("img");
        // alert(img);
    
        // 定义一个变量
        var count = 1;
    
        // 2. 循环切换图片
        // window.setInterval(匿名函数, 时间毫秒); 在指定的时间毫秒间隔, 不断调用第一个参数传入的匿名函数.
        window.setInterval(function() {
            count++;
            img.src = "../img/0"+count+".jpg";
    
            // 判断
            if (count == 8) {
                count = 0;
            }
        }, 1000);
    
    </script>
    

    21、js事件

    21.1、事件概述:

    事件三要素:
    1.	事件源:被监听的html元素(就是这个事件加给谁),就是某个(某些)html标签
    2.	事件类型:某类动作,例如点击事件,移入移除事件,敲击键盘事件等
    3.	执行指令:事件触发后需要执行的代码,一般使用函数进行封装
    语法格式:事件源.事件类型=执行指令
    

    21.2、常用的事件:

    案例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>事件</title>
    
        <script>
            // 窗口 : window 对象提供了一个事件类型  onload 页面加载完成事件.
            // 事件源 : window    事件类型 : 页面加载完成事件 (onload)  执行指令: 就是赋值的 function 函数.
            window.onload = function () {
    
                // 获取页面的 btn 按钮
                var btn = document.getElementById("btn");
                // alert(btn);
    
                // 给 btn 按钮绑定一个事件 (单击事件 onclick)
                // 事件源 : btn按钮    事件类型 : 单击事件 (onclick)  执行指令: 就是赋值的 function 函数.
                btn.onclick = function () {
                    alert("恭喜你, 中了 500 万!");
                }
            }
    
        </script>
    
    </head>
    <body>
        <button id="btn">按钮</button>
    </body>
    </html>
    

    到此基础结束。

     

    ==============《轮播图图片路径问题》================

     

                                                           =================================

                        公众号  关注一波  (一叶知秋博客)不定期分享视频资料

                                                           

     

     

    展开全文
  • 下面小编就为大家带来一篇js中判断变量类型函数typeof的用法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 1、作用: typeof 运算符返回一个用来表示表达式的数据类型...
  • 上次用了参考模型的方法用RBF神经网络试了一下放到自适应控制模型上,其实跟踪效果还可以,放大了有点不舒服...李雅普诺夫稳定判据是在本科现代控制理论有提到,运用构造的函数已经正定矩阵做判决判断系统稳定性。...
  • 方程估计值b1和b2可以看做偏回归系数,也是相应自变量对y的一种偏效应 偏效应:在控制变量下,各自变量X对因变量Y的净效应 残差项:针对具体模型而言,被定义为样本回归模型中观测值与预测值之差 误差项:针对总体...
  • //isprime函数的说明语句 main() { int x; printf("Enter a integer number:"); scanf("%d",&x);//从键盘输入一个整数 if(isprime(x)) printf("%d is prime\n",x);//当函数返回1时,输出“是素数” else ...
  • 1.自变量选择的影响 如果一个因变量共受到个因素的影响,建模时选取了所有的因素,则为全模型;若只选了其中p个因素建模,则成为选模型。  (1)全模型 其参数估值为:  (2)选模型 其参数估值为: 自变量...
  • C语言

    万次阅读 多人点赞 2019-12-18 23:01:50
    C语言 42.C语言是一种计算机高级语言。...47.C语言允许有空函数 48.C程序书写格式,允许一行内可以写几个语句 49.C程序的语句无行号 50.C语言的每个语句的最后必须有一个分号 51.C语言本身没有输入...
  • typedef介绍

    万次阅读 多人点赞 2019-08-21 17:18:48
    typedef 符合(C语言)范围规则,使用 typedef 定义的变量类型,其作用范围限制在所定义的函数或者文件内(取决于此变量定义的位置),而宏定义则没有这种特性。 通常,使用 typedef 要比使用 #define 要好,特别是...
  • //选择结构流程 #include"stdio.h" /*编译预处理命令*/  void main() /*main函数*/  {  int ix,iy; ...
  • C++中判断数据类型的函数【转】

    千次阅读 2018-10-15 16:43:18
    (转:...我们可以利用库函数typeid,来判断变量a是否为整型变量; 如: if (typeid(a) == typeid(int)) 这个库函数typeid在头文件typeinfo.h中。 #include <typeinfo...
  • MATLAB函数速查手册

    千次阅读 多人点赞 2018-03-25 09:06:26
    《MATLAB函数速查手册》较全面地介绍了MATLAB的函数,主要包括MATLAB操作基础、矩阵及其基本运算、与数值计算相关的基本函数、符号运算的函数、概率统计函数、绘图与图形处理函数、MATLAB程序设计相关函数、Simulink...
  • C++ 类(构造函数和析构函数)

    万次阅读 多人点赞 2018-07-20 19:00:51
    文章概述 构造函数和析构函数的由来? 构造函数和析构函数的基本语法 C++编译器构造析构方案 PK 对象显示初始化方案 构造函数的分类以及调用 ...构造函数是一种特殊的成员函数,与其他函数不同,不需要用户调用它,而...
  • 如何判断c语言的变量类型

    千次阅读 2017-09-12 19:26:00
    变量三要素: 一个变量有三个基本的要素,变量的名称,变量的类型,变量的值。所以int a = 10; 变量名为a,变量的存储类型为int型,变量的值为10。 变量还有一些属性如作用范围和存储类型。 变量作用范围和存储...
  • 定义在函数外部--->全局变量--->整个js(存在变量提升) 2.let是块级作用域,函数内部使用let定义后,对函数外部无影响 3.const定义的变量初始化以后不可以修改--->类似于java常量 4.没有任何关键字声明的变量-...
  • C++面试题汇总 (一)

    万次阅读 多人点赞 2019-06-27 08:54:39
    delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,...
  • c/c++静态变量和静态函数

    千次阅读 2018-11-11 15:32:26
    静态局部变量函数内定义 它的生存期为整个源程序,但是其作用域仍与自动变量相同,只能在定义该变量函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。 允许对构造类静态局部量赋...
  • 大概原理:先判断_hmt的数据类型,如果其是数组说明js没加载过,然后把当前_hmt保存的数据先存到临时变量里,待_hmt被重新赋值为正确的统计js的function对象后,最后再过来处理下临时变量里的数据,这样就保证了数据...
  • if mod(i,2) == 0 % i 是偶函数 else % i 是奇函数 end
  • 一、函数 声明方式: 1)变量声明: var foo = function () { .... } ...2)函数声明: ...函数参数:都是按值传递(把函数外部的值复制给函数内部的参数) ...而变量复制则有两种方式...函数体中要用到的中间变量尽量...
  • 函数返回局部变量的指针或引用

    千次阅读 2018-05-16 23:17:53
    一般来说,由于在离开函数后局部变量会被释放,所以是不允许函数返回指向局部变量的指针或引用的。我们往往需要遵循如下原则:引用作为返回值,必须遵守以下规则:(1)不能返回局部变量的引用。主要原因是局部变量...
  • typeof在两种情况下会返回"undefined":一个变量没有被声明的时候,和一个变量的值是undefined的时候.例如: > typeof undeclaredVariable === "undefined" true  > var declaredVariable;  > typeof ...
  • 多元函数一般是指某个定义域为 DDD 的函数 fff 有两个及以上的自变量,z=f(x1,x2,x3,...)z=f(x_1,x_2,x_3,...)z=f(x1​,x2​,x3​,...),18.02这门课一般研究含有两个或三个的函数。 (严谨的定义请参见百度百科多元...
  • C++面试题

    千次阅读 多人点赞 2019-01-07 17:06:10
    局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如,在两个循环体内都定义一个同名的局部变量...
  • 自动变量就是指在函数内部定义使用的变量。他只是允许在定义他的函数内部使用它。在函数外的其他任何地方都不能使用的变量。自动变量是局部变量,即它的区域性是在定义他的函数内部有效。当然这说明自动变量也没有...
  • JavaScript常见变量函数命名示例

    万次阅读 2020-07-21 15:16:17
    JavaScript作为前端开发从业人员必须掌握的3大基础知识中最重要的一环,也是平是接触时间最长、写得最多的。在开发过程中必然会遇到命名的问题,你会词穷...JavaScript常见变量函数命名示例思维导图 需要注意的是由
  • C语言指针详解

    千次阅读 多人点赞 2014-10-26 08:37:01
    利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环, 能否正确...
  • 函数 1.概念: 重复执行的代码块或者说函数是事件驱动的重复执行的代码块. 2.函数的定义: 语法结构:function 函数名称遵循命名规则(){ 函数体 } 例如: <!DOCTYPE html> <html> <head> ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 666,560
精华内容 266,624
关键字:

如何判断函数自变量