函数声明

JavaScript中声明函数的方式:(无需声明返回值类型)
function add(i1, i2) {
            return i1 + i2;//如果不写return返回的是undefined
        }
int add(int i1,int i2)//C#写法
不需要声明返回值类型、参数类型。函数定义以function开头。
        var r = add(1, 2);
        alert(r);
        r = add("你好", "tom");
        alert(r);
JavaScript中不像C#中那样要求所有路径都有返回值,没有返回值就是undefined。
易错:自定义函数名不要和js内置、dom内置方法重名,比如selectAll、focus等函数名不要用。//不要与系统函数重名。(在单击事件中调用自己定义的focus方法,有问题。与系统的focus()方法重名了)

函数声明时注意{ }的位置
推荐写法:
function fun(){
}
一般在js中编写大括号都是直接跟在后面而不要另起一行,比如:
return {Name:’yzk’,Age:18};而不要写成:
return
{
Name:’yzk’,
Age:18
}

原因是js会在语句末尾自动增加”分号”,如果将大括号另起一行,则return语句后自动增加“分号”后,返回值就变成了undefined了。

arguments对象
JavaScript中没有方法重载。
动态为方法传递参数,类似于.net中的params关键字作用
<script type="text/javascript">
        function myFunc() {
            for (var i = 0; i < arguments.length; i++) {
                document.write(arguments[i]);
                document.write('<br/>');
            }
        }
        myFunc('张三', 18, '李四', 19);
    </script>

匿名函数1(函数直接量function literal)
第一种:
var f1=function(p1,p2){ return p1+p2; };//将函数赋值给一个变量
alert(f1(1,3));
匿名函数没法调用,只能赋值给一个变量,由于是赋值语句,后面要加分号
应用:
///document.getElementById(‘btn’).onclick=function(){}

第二种(*):
(function(p1,p2){alert(p1+p2);})(20,30);

第三种:(*)
var m1=new Function(“p1”,”p2”,”p3”,”return p1+p2+p3”);
alert(m1(1,2,3));性能低eval
匿名函数知道即可,以后用到的时候就会发现它的好了。jQuery中大量用到了匿名函数。

匿名函数2
类似于C#中的匿名函数。
这种匿名函数的用法在jQuery中的非常多。
alert(function(i1, i2) { return i1 + i2; }(10,10));//直接声明一个匿名函数,立即使用。用匿名函数省得定义一个用一次就不用的函数,而且免了命名冲突的问题,js中没有命名空间的概念,因此很容易函数名字冲突。通过例子发现一旦命名冲突以最后声明的为准。尽量减少文件的字节数。
匿名函数的使用,在后续的学习中会有使用。

JS面向对象基础1(*)
1.函数就是对象,对象就是函数。【当函数作为对象时,每个单词首字母都大写】
方法直接调用为函数,用new调用为对象。

2.由于js是动态语言所以创建对象的最直接的方式:
var obj=new Object();
obj.name=‘aa’;
obj.age=18;//要什么加什么。但是都是object类型。无法区分不同类型。

3.Example(写一个Person对象):
function Person()  {   }   //ok,就这么简单。

4.如何使用Perosn对象?
var p=new Person();// “var p”  不是   “Person p”。
p.Name=‘张三’;//动态语言,所以可以直接写。
p.Age=30;
p.SayHello=function() { alert(‘Hi~’); }
alert(p.Name);
alert(p[‘Age’]);//另外一种动态访问属性的方式。

JS面向对象基础2(*)
JavaScript同样支持this关键字
构建一个带参数的Person对象。通过this关键字为对象的属性赋值。
function Person(name, age) {
            this.Name = name;
            this.Age = age;
            this.ShowInfo = function() {
            alert('大家好,我叫' + this.Name + ',今年' + this.Age + '岁了。');     }}
var zjl = new Person('周杰伦', 20);
zjl.ShowInfo();
function Person(name,age)可以看做是声明构造函数,Name、Age这些属性也是使用者动态添加了。【var p1 = Person(“周杰伦", 20);//不要丢了new,否则就变成调用函数了,p1为undefined。】new 相当于创建了函数的一个实例。

JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)的更多相关文章

  1. JS执行顺序-函数声明提升、匿名函数、函数表达式

    大方向上: JS 是按照 代码块 进行 编译.执行 的. 学习至: 1.变量声明提升 2.新唐的博客 3.js中匿名函数的创建与调用方法分析 4.前端圣经 - <高程三> 5.深入理解变量 ...

  2. JavaScript学习总结(三、函数声明和表达式、this、闭包和引用、arguments对象、函数间传递参数)

    一.函数声明和表达式 函数声明: function test() {}; test();    //运行正常 function test() {}; 函数表达式: var test = functio ...

  3. 第4天:function对象(案例:获取当前日期属于当年第几天、arguments对象、函数类型、参数、返回值、自身调用)

    获取当前日期输入当年第几天 //输入,年月日,获取这个日期是这一年的第几天 //年-月--日:20171月31日 function getDay(year,month,day){ //定义变量存储对应 ...

  4. ES6教程-字符串,函数的参数,了解函数的arguments对象,js面向对象,设计模式-单例模式,解构赋值

    前言 主要讲解了ES6对字符串的拓展,包括includes,startsWith和endsWith,另外增加了字符串模板. Start includes()是否包含 startsWith()以什么开头 ...

  5. 函数的arguments对象的使用和介绍

    arguments对象用于函数,当不知道传递了多少个实参,就可以使用arguments对象进行存储传递过来的实参(这时不需要写形参). arguments是一个内置对象,也是一个伪数组,我们可以按照数 ...

  6. JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用

    “JavaScript设计得最出色的就是它的函数的实现.” -- <JavaScript语言精粹> 函数包含一组语句,它们是JS的基础模块单元,用于指定对象的行为.一般来说,所谓编程,就是 ...

  7. JS 函数(arguments、箭头函数、bind)

    参数 函数内部可用的 arguments 对象来访问函数的实参 注意 在函数递归调用的时候(在某一刻同一个函数运行了多次,也就是有多套实参),那么 arguments 属性的值是最近一次该函数调用时传 ...

  8. 洗礼灵魂,修炼python(24)--自定义函数(5)—匿名函数lambda

    在这个互联网时代,大家都喜欢匿名,匿名上网,匿名登录,匿名操作等等,都不喜欢实名对吧?(虽然说现在实名制已经快到来,题外话,扯远了),当然python里也有个不喜欢实名的,它的功效优点特殊,说强大吧? ...

  9. js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存)

    js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存) 一.总结 1.闭包:就是在一个函数内部嵌套一个匿名函数,这个匿名函数可以访问这个函数的变量. 二.要点 闭包 闭包的相 ...

随机推荐

  1. 11g RAC R2 体系结构---Grid

    基于agent的管理方式 从oracle 11.2开始出现了多用户的概念,oracle开始使用一组多线程的daemon来同时支持多个用户的使用.管理资源,这些daemon叫做Agent.这些Agent ...

  2. 用Tupper自我指涉公式造图

    塔珀自指公式是杰夫·塔珀(Jeff Tupper)发现的自指公式:此公式的二维图像与公式本身外观一样.此公式在众多数学与计算机科学课程里被用作绘制公式图像的练习作业. 公式最初于他2001年SIGGR ...

  3. libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.9-1.el6.x86_64

    版本:5.7.9 新装的CentOS 6.3 安装MySQL 5.7.9 出现的问题 1.首先卸载系统自带的mysql 5.1的包    yum   -y  remove   mysql-libs-5 ...

  4. ASP.NET操作WMI

    WMI Functions from ASP.NET   Introduction This article demonstrates how to use WMI in ASP.NET to cre ...

  5. iOS的SandBox的结构研究

    在模拟器中运行iOS程序,都会为该程序创建一个沙盒(SandBox).首先声明,我用的系统是Max OS X 10.7.3,编译器是Xcode 4.3.2.想要找到沙盒目录,先运行Finder,然后在 ...

  6. SQL索引优化

    序言数据库的优化方法有很多种,在应用层来说,主要是基于索引的优化.本次秘笈根据实际的工作经验,在研发原来已有的方法的基础上,进行了一些扩充,总结了基于索引的SQL语句优化的降龙十八掌,希望有一天你能用 ...

  7. creating indexing for SQL tunning

    1. Not so long time ago, I got a report from customer. It's reported that they had a report getted v ...

  8. GDAL编译(转)

    一.简单的编译 1.使用VisualStudio IDE编译 首先进入GDAL的源代码目录,可以看到有几个sln为后缀的文件名,比如makegdal10.sln,makegdal80.sln,make ...

  9. C#截取文件的文件夹地址

    创建文件 if (!File.Exists(file_name)) { File.Create(file_name).Close(); } using System.IO; 如果没有.Close(), ...

  10. c++ 函数返回指针 及用法

    #include<string> #include<iostream> using namespace std; string fun1(int a) { string str ...