移动用户体验设计语言:错误状态统筹

指鹿为马状态统筹

  从传统意义上来说,ECMAScript
并不着实具有类。事实上,除了表明不存在类,在 ECMA-262
中根本未曾出现“类”这些词。ECMAScript
定义了“对象定义”,逻辑上等价于其余程序设计语言中的类。

“错误”时有暴发。在App与生存中都会发出。有时是因为我们犯了不当,有时是系统错误。无论错误原因是哪些,它们——还有解决格局——对用户体验影响长远。但它往往不被尊重,草草处理错误、社团混乱的错误音信会使用户悲伤,最后甩掉你的行使。相反,处理适用的失实提醒,能把破产变为惊喜。

  var o = new
Object();

咱俩会谈论哪些优化app的布署性,来全力幸免用户错误,并创造优质的错误信息。

  • 由ECMAScript定义的本地对象.独立于宿主环境的
    ECMAScript 完毕提供的对象.(native object)
  • ECMAScript
    落成提供的、独立于宿主环境的具备目标,在 ECMAScript
    程序开始执行时出现.那意味开发者不必明确实例化内置对象,它已被实例化了。ECMA-262
    只定义了多少个放置对象,即 Global 和 Math
    (它们也是地点对象,依照定义,每个内置对象都是地面对象)。(built-in
    object)
  • 负有非本地对象都是宿主对象(host
    object),即由 ECMAScript 已毕的宿主环境提供的对象。所有 BOM 和 DOM
    对象都是宿主对象。

谬误是怎么样?

颠倒是非(或者说错误状态)暴发在app未能落成某个预期操作时,例如:

1.app不知道用户的输入

2.app出错了

3.用户准备同时开展七个冲突的操作**

无论是何人挑起的,每一种错误对于用户而言,都会成为一种阻碍。好在,设计卓绝的错误处理能压缩那种阻碍。

  object对象:ECMAScript 中的所有目的都由这几个目的继承而来;Object
对象中的所有属性和办法都见面世在其他对象中ToString()
: 再次回到对象的原始字符串表示。ValueOf() :
重返最适合该对象的原始值。对于众多目的,该方式重临的值都与 ToString()
的再次回到值相同。

防护用户错误

动用app进程中我们很熟悉各类限制标准。例如网络情形差的动静下,很难填写表单,而且大概无法同步数据。要考虑到这么些限制,设计更易使用的app,将错误减到最少。也就是说应该提供提议、加上限制、保持灵活,第一时间预防用户犯错。**

推特(TWTR.US)因推文的字数限制而有名,他们会在用户高达字数上限从前提出警告

  在JavaScript中除了null和undefined以外别的的数据类型都被定义成了对象,也可以用创立对象的格局定义变量,String、Math、Array、Date、RegExp都是JavaScript中第一的放置对象,在JavaScript程序半数以上效用都是因此对象落成的。

让错误音信统一有效

10大可用性原则中建议,要明晰优雅地发挥出错误新闻。有效的失实提醒应该提供如下新闻:

1.强烈公布发生了如何

2.叙述用户应该怎么着回答

3.尽可能多地保留用户输入的音讯

<script language="javascript">
var aa=Number.MAX_VALUE; 
//利用数字对象获取可表示最大数
var bb=new String("hello JavaScript"); 
//创建字符串对象
var cc=new Date();
//创建日期对象
var dd=new Array("星期一","星期二","星期三","星期四"); 
//数组对象
</script>

用户输入错误

用户输入新闻验证的意思在于与用户沟通,并引导他们征服困难**,应对不确定。

输入验证的基本点标准是:“出现错误时告知他们!”简单说,卓越的表单验证由3个主要因素结合:

在相当时机和职位告诉错误

为错误音信选用确切的颜色

用醒目标言语叙述失实

所有这一个都有一个首要对象——幸免狐疑

语言 1

适合的时机和职位(行内验证)

用户并不喜欢填完一个长表单并交由将来,才意识何地填错了。告知输入音信无误与否的适当时机,正是在输入之后。实时验证就该出场了。

实时行内验证会马上对用户输入作出提醒。倘使选取行内表单验证,就会清楚表明有不当的输入项,发生错误时,提交按钮也会置灰。用户无需等到点击提交按钮才来看错误,他们能更早修正错误。

图形源于:谷歌

上面是多少个行内表单验证的案例:

不同盟的情节

交给从前检测出的不当

跨越或不满规定篇幅

包蕴字数计算的输入框与错误提醒

  string对象

万分的水彩(直观的筹划)

颜色是统筹验证音信的特等手段。因为它能吸引本能效用,青色的错误音讯和色情的警戒音信格外实惠。错误文字应当易于阅读,与背景有丰盛的反差,令人能只顾到。但要确保界面中的颜色适用于拥有用户,那是有口皆碑视觉设计的主要性因素。

令人专注到提醒新闻

  创立字符串的方法:

众目睽睽的音信(发生了什么样)

管教错误新闻是写给人看的。要已毕那点,就得用用户的语言来发话,避免使用技巧术语,用用户的词汇来发挥一切。验证信息要清晰陈述以下内容:

1.什么样出错了,为何。

2.用户接下去该做哪些来化解错误。

左图中的错误提醒为“输入日期错误”;右图中的错误提示为“这是个过去的日子”

顶尖的荒谬会直接说“新闻不得法”,没有告知用户它为何错了(是数据类型错误?依旧一度被占据了?),确保音信清晰明确。

var str1="hello world";
var str1= new String("hello word");//首字母大写

选取的荒唐

应用也会时有暴发错误,它不受用户输入影响。那种场馆下,用户会遭逢意想不到的动静。突显错误时,要解释一下用户为何一无所有,怎么样摆脱近年来情形。

  1. 联机错误/加载错误

当一头或链接断开,或者内容加载失利时,应该告知用户。要先期告诉他们。由于没有数量,可以选用空状态填补空隙。可悲事实是,许多空状态看起来……真正是空的。上面的事例中,错误界面只说“爆发了不当”,没有提供一些卓有作用的音讯。

那是个空状态页面

把错误提醒想象成与用户的一场对话。在受到败北时,用自己且有意义的空状态来维系。提供基本所需的消息来救助用户,鼓励他们排忧解难难点。

走丢了,失去连接,似乎置身于荒岛?可以跟随提出,保持冷静,点起篝火,持续刷新

*
*

在方便时机,提供链接或按钮赞助用户已毕任务。但要提供你所能做到的操作。即使明知道会破产,就毫无放出“再试一回”那样的选项。

  两者的差距之处在于接纳new创设字符串对象str1,全局有效。

绝不显示原始错误新闻

上面这几个例子中的音讯分外晦涩

操作不能形成WDGeneralNetworkError error 500

决不假如人们清楚提醒音讯的前因后果,或者指望他们是技术专家,要用简单的言语告诉人们哪儿出错了。如何用人话来表明那几个错误?把它写下来,那就是您的错误提醒文案。

语言 2语言 3

不包容的情事错误

用户准备实施争持操作时,会引发不包容的情状错误,例如在宇航格局下拨电话,或者离线状态播放在线视频。应该清楚评释他们所处状态,防止他们陷入那样地步。简单说,即使毫无让用户执行不可能到位的天职

清晰讲明错误的来头和出处

书写格式:

String对象提供了一组针对HTML格式的方法,如x.anchor()返回锚定义字符串<a>x</a>,
x.bold()返回粗体表示字符串<b>x</b>,x.sup()返回上标格式字符串<sup>x</sup>。
-----------------------------------------

var x="yuan";
var y="x.italics():"+x.italics();
document.write(y.fontsize(10));//<font size="10">x.italics():<i>yuan</i></font>

结论

不曾出现的错误消息才是最好的。最佳艺术是指引用户向正确方向前进,第一时间预防错误发生。但当错误确实暴发时,设计赏心悦目的错误处理,不仅能感化用户按您预期的章程接纳app,仍能防备用户感到大惑不解。

格式编排格局

语言 4语言 5

var str1="AbcdEfgh"; 

var str2=str1.toLowerCase();
var str3=str1.toUpperCase();
alert(str2);
//结果为"abcdefgh"
alert(str3);
//结果为"ABCDEFGH"

大大小小写转换

语言 6语言 7

书写格式

x.charAt(index)

x.charCodeAt(index)

使用注解

x代表字符串对象
index代表字符位置
index从0开始编号
charAt返回index位置的字符
charCodeAt返回index位置的Unicode编码
----------------------
var str1="welcome to the world of JS! J丁";

var str2=str1.charAt(29);
var str3=str1.charCodeAt(29);
alert(str2);
//结果为"丁"
alert(str3);
//结果为19969

获取指定字符

语言 8语言 9

//书写格式
//x.indexOf(findstr,index)
//x.lastIndexOf(findstr)
//-------------------------------------
var str1="welcome to the world of JS!";

var str2=str1.indexOf("l");
var str3=str1.lastIndexOf("l");
alert(str2);
//结果为2
alert(str3);
//结果为18

//-------*********************************************************-------

//书写格式
//
//x.match(regexp)
//
//x.search(regexp)
//
//使用注解
//
//x代表字符串对象
//
//regexp代表正则表达式或字符串
//
//match返回匹配字符串的数组,如果没有匹配则返回null
//
//search返回匹配字符串的首字符位置索引
//-------------------------------------
var str1="welcome to the world of JS!";

var str2=str1.match("world");
var str3=str1.search("world");
alert(str2);
alert(str2[0]);
//结果为"world"
alert(str2[1]);
//undefined
console.log(str2);
//["world", index: 15, input: "welcome to the world of JS!"]
alert(str3);
//结果为15
console.log(str3);
//15

询问字符串

语言 10语言 11

//截取子字符串
//
//书写格式
//
//x.substr(start, length)
//
//x.substring(start, end)
//
//使用注解
//
//x代表字符串对象
//
//start表示开始位置
//
//length表示截取长度
//
//end是结束位置加1
//
//第一个字符位置为0


var str1="abcdefgh";
var str2=str1.substr(2,4);
var str3=str1.substring(2,4);
alert(str2);
//结果为"cdef"
alert(str3);
//结果为"cd"

//-------*********************************************************-------
//x.slice(start, end)


var str1="abcdefgh";
var str2=str1.slice(2,4);
var str3=str1.slice(4);
var str4=str1.slice(2,-1);
var str5=str1.slice(-3,-1);
alert(str2);
//结果为"cd"
alert(str3);
//结果为"efgh"
alert(str4);
//结果为"cdefg"
alert(str5);
//结果为"fg"

子字符串处理

语言 12语言 13

//x.replace(findstr,tostr)

var str1="abcdefgh";
var str2=str1.replace("cd","aaa");
alert(str2);
//结果为"abaaaefgh"

轮换子字符串

语言 14语言 15

var str1="一,二,三,四,五,六,日"; 

var strArray=str1.split(",");

alert(strArray[1]);
//结果为"二"

分割字符串

语言 16语言 17

//y=x.concat(addstr)
//
//使用注解
//
//x代表字符串对象
//addstr为添加字符串
//返回x+addstr字符串

var str1="abcd"; 
var str2=str1.concat("efgh");

alert(str2);
//结果为"abcdefgh" 

连年字符串

语言 18语言 19

var s1=new String(" hello|word ");
        console.log(s1.length);//12
        console.log(s1.trim());//hello|word
        console.log(s1.charAt(2));//e
        console.log(s1.indexOf("l",2));//3
        console.log(s1.match("word")[0]);//word
        console.log(s1.substr(2,3));//ell
        console.log(s1.substring(2,3));     // 顾头不顾尾e

        console.log(s1.slice(2,6));     // 切片操作ello
        console.log(s1.slice(-3,-1));     // 切片操作rd

        console.log(s1.split("|"));     // 返回一个数组对象[" hello", "word "]

字符串操作

  数组对象

  Array 对象用于在单个的变量中储存七个值。

创建方式1:
var a=[1,2,3];

创建方式2:
new Array();     //  创建数组时允许指定元素个数也可以不指定元素个数。
new Array(size);//if 1个参数且为数字,即代表size,not content
    初始化数组对象:
    var cnweek=new Array(7);
        cnweek[0]="星期日";
        cnweek[1]="星期一";
        ...
        cnweek[6]="星期六";

new Array(element0, element1, ..., elementn)//也可以直接在建立对象时初始化数组元素,元素类型允许不同

var test=new Array(100,"a",true);

  可以动用数组创制出一个和python字典相似的二维数组。

var cnweek=new Array(7);
for (var i=0;i<=6;i++){
    cnweek[i]=new Array(2);
}
cnweek[0][0]="星期日";
cnweek[0][1]="Sunday";
cnweek[1][0]="星期一";
cnweek[1][1]="Monday";
...
cnweek[6][0]="星期六";
cnweek[6][1]="Saturday";

语言 20

语言 21语言 22

var cnweek=new Array(7);
cnweek[0]="星期日";
cnweek[1]="星期一";
cnweek[2]="星期二";
cnweek[3]="星期三";
cnweek[4]="星期四";
cnweek[5]="星期五";
cnweek[6]="星期六";
for (var i=0;i<cnweek.length;i++){
  document.write(cnweek[i]+" | ");
}

数组length

语言 23语言 24

//书写格式
//x.join(bystr)
//使用注解
//
//x代表数组对象
//bystr作为连接数组中元素的字符串
//返回连接后的字符串
//与字符串的split功能刚好相反

var arr1=[1, 2, 3, 4, 5, 6, 7];

var str1=arr1.join("-");

alert(str1);
//结果为"1-2-3-4-5-6-7" 

总是数组-join方法

语言 25语言 26

//连接数组-concat方法
//
//x.concat(value,...)


var a = [1,2,3];
var a = new Array(1,2,3);
var b=a.concat(4,5) ;


alert(a.toString());
//返回结果为1,2,3
alert(b.toString());
//返回结果为1,2,3,4,5

连日来数组-concat方法

语言 27语言 28

//x.reverse()
//x.sort()

var arr1=[32, 12, 111, 444];
//var arr1=["a","d","f","c"];

arr1.reverse(); //颠倒数组元素
alert(arr1.toString());
//结果为444,111,12,32

arr1.sort();    //排序数组元素
alert(arr1.toString());
//结果为111,12,32,444

//------------------------------
arr=[1,5,2,100];

//arr.sort();
//alert(arr);
//如果就想按着数字比较呢?

function intSort(a,b){
    if (a>b){
        return 1;//-1
    }
    else if(a<b){
        return -1;//1
    }
    else {
        return 0
    }
}

arr.sort(intSort);

alert(arr);

function IntSort(a,b){
    return a-b;
}

数组排序-reverse sort

语言 29语言 30

//x.slice(start, end)
//
//使用注解
//
//x代表数组对象
//start表示开始位置索引
//end是结束位置下一数组元素索引编号
//第一个数组元素索引为0
//start、end可为负数,-1代表最后一个数组元素
//end省略则相当于从start位置截取以后所有数组元素

var arr1=['a','b','c','d','e','f','g','h'];
var arr2=arr1.slice(2,4);
var arr3=arr1.slice(4);
var arr4=arr1.slice(2,-1);

alert(arr2.toString());
//结果为"c,d" 
alert(arr3.toString());
//结果为"e,f,g,h"
alert(arr4.toString());
//结果为"c,d,e,f,g"

数组切片-slice

语言 31语言 32

//x. splice(start, deleteCount, value, ...)
//
//使用注解
//
//x代表数组对象
//splice的主要用途是对数组指定位置进行删除和插入
//start表示开始位置索引
//deleteCount删除数组元素的个数
//value表示在删除位置插入的数组元素
//value参数可以省略


var a = [1,2,3,4,5,6,7,8];
a.splice(1,2);
//a变为 [1,4,5,6,7,8]
alert(a.toString());
a.splice(1,1);
 //a变为[1,5,6,7,8]
alert(a.toString());
a.splice(1,0,2,3);
 //a变为[1,2,3,5,6,7,8]
alert(a.toString());

去除子数组

语言 33语言 34

//push pop这两个方法模拟的是一个栈操作

//x.push(value, ...)  压栈
//x.pop()             弹栈      
//使用注解
//
//x代表数组对象
//value可以为字符串、数字、数组等任何值
//push是将value值添加到数组x的结尾
//pop是将数组x的最后一个元素删除


var arr1=[1,2,3];
arr1.push(4,5);
alert(arr1);
//结果为"1,2,3,4,5"
arr1.push([6,7]);
alert(arr1)
//结果为"1,2,3,4,5,6,7"
arr1.pop();
alert(arr1);
//结果为"1,2,3,4,5"

数组的进出栈操作(1)

语言 35语言 36

// unshift shift 
//x.unshift(value,...)
//x.shift()
//使用注解
//
//x代表数组对象
//value可以为字符串、数字、数组等任何值
//unshift是将value值插入到数组x的开始
//shift是将数组x的第一个元素删除

var arr1=[1,2,3];
arr1.unshift(4,5);
alert(arr1);
//结果为"4,5,1,2,3"
arr1. unshift([6,7]);
alert(arr1);
//结果为"6,7,4,5,1,2,3"
arr1.shift();
alert(arr1);
//结果为"4,5,1,2,3"

数组的进出栈操作(2)

语言 37语言 38

//  js中数组的特性
         //java中数组的特性,  规定是什么类型的数组,就只能装什么类型.只有一种类型.
         //js中的数组特性1: js中的数组可以装任意类型,没有任何限制.
         //js中的数组特性2: js中的数组,长度是随着下标变化的.用到多长就有多长.
         var arr5 = ['abc',123,1.14,true,null,undefined,new String('1213'),new Function('a','b','alert(a+b)')];
        /*  alert(arr5.length);//8
         arr5[10] = "hahaha";
         alert(arr5.length); //11
         alert(arr5[9]);// undefined */

js数组特性

语言 39语言 40

//遍历数组:
for (var i in arr1){
    console.log(arr1[i])
    }//111,222,333
d1={"name":"copila","age":23};  // d1是object数据类型
    console.log(d1);//一个字典的object
    console.log(typeof d1);//object
d2={name:'copila',age:34};      // 键可有可无
    console.log(d2);
    console.log(typeof d2);          //  值单引号双引号都可以
    for (var i in d1){
        console.log(i);
    }//name,age
console.log(typeof arr1.toString());//string
console.log(arr1.length);//3
console.log(arr1.concat(1,2,3).length);//6
console.log(arr1.length);//3
console.log(arr1.concat([1,2,3]).length)//6
//push pop   栈操作
      var arr1=[12,32,5,33,100];
      arr1.push(99);
      console.log(arr1);//(6) [12, 32, 5, 33, 100, 99]
      arr1.pop();
      console.log(arr1)//(5) [12, 32, 5, 33, 100]

        // shift unshift  栈操作

      var arr1=[12,32,5,33,100];
      arr1.unshift(123);
      console.log(arr1);//(6) [123, 12, 32, 5, 33, 100]
      arr1.shift();
      console.log(arr1);//(5) [12, 32, 5, 33, 100]

示例

  date对象

语言 41语言 42

//方法1:不指定参数
var nowd1=new Date();
alert(nowd1.toLocaleString( ));
//方法2:参数为日期字符串
var nowd2=new Date("2004/3/20 11:12");
alert(nowd2.toLocaleString( ));
var nowd3=new Date("04/03/20 11:12");
alert(nowd3.toLocaleString( ));
//方法3:参数为毫秒数
var nowd3=new Date(5000);
alert(nowd3.toLocaleString( ));
alert(nowd3.toUTCString());

//方法4:参数为年月日小时分钟秒毫秒
var nowd4=new Date(2004,2,20,11,12,0,300);
alert(nowd4.toLocaleString( ));
//毫秒并不直接显示

date对象的创导

  Date对象的格局

  获取日期和时间

获取日期和时间
getDate()                 获取日
getDay ()                 获取星期
getMonth ()               获取月(0-11)
getFullYear ()            获取完整年份
getYear ()                获取年
getHours ()               获取小时
getMinutes ()             获取分钟
getSeconds ()             获取秒
getMilliseconds ()        获取毫秒
getTime ()                返回累计毫秒数(从1970/1/1午夜)

语言 43语言 44

function getCurrentDate(){
        //1. 创建Date对象
        var date = new Date(); //没有填入任何参数那么就是当前时间
        //2. 获得当前年份
        var year = date.getFullYear();
        //3. 获得当前月份 js中月份是从0到11.
        var month = date.getMonth()+1;
        //4. 获得当前日
        var day = date.getDate();
        //5. 获得当前小时
        var hour = date.getHours();
        //6. 获得当前分钟
        var min = date.getMinutes();
        //7. 获得当前秒
        var sec = date.getSeconds();
        //8. 获得当前星期
        var week = date.getDay(); //没有getWeek
        // 2014年06月18日 15:40:30 星期三
        return year+"年"+changeNum(month)+"月"+day+"日 "+hour+":"+min+":"+sec+" "+parseWeek(week);
    }

alert(getCurrentDate());

//解决 自动补齐成两位数字的方法
    function changeNum(num){
    if(num < 10){
        return "0"+num;
    }else{
        return num;
    }

}
//将数字 0~6 转换成 星期日到星期六
    function parseWeek(week){
    var arr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
    //             0      1      2      3 .............
    return arr[week];
}

js显示当前时刻

  设置日期和岁月

//设置日期和时间
//setDate(day_of_month)       设置日
//setMonth (month)                 设置月
//setFullYear (year)               设置年
//setHours (hour)         设置小时
//setMinutes (minute)     设置分钟
//setSeconds (second)     设置秒
//setMillliseconds (ms)       设置毫秒(0-999)
//setTime (allms)     设置累计毫秒(从1970/1/1午夜)

var x=new Date();
x.setFullYear (1997);    //设置年1997
x.setMonth(7);        //设置月7
x.setDate(1);        //设置日1
x.setHours(5);        //设置小时5
x.setMinutes(12);    //设置分钟12
x.setSeconds(54);    //设置秒54
x.setMilliseconds(230);        //设置毫秒230
document.write(x.toLocaleString( )+"<br>");
//返回1997年8月1日5点12分54秒

x.setTime(870409430000); //设置累计毫秒数
document.write(x.toLocaleString( )+"<br>");
//返回1997年8月1日12点23分50秒  

  日期和岁月的变换

语言 45语言 46

日期和时间的转换:

getTimezoneOffset():8个时区×15度×4分/度=480;
返回本地时间与GMT的时间差,以分钟为单位
toUTCString()
返回国际标准时间字符串
toLocalString()
返回本地格式时间字符串
Date.parse(x)
返回累计毫秒数(从1970/1/1午夜到本地时间)
Date.UTC(x)
返回累计毫秒数(从1970/1/1午夜到国际时间)

日期和岁月的转移

语言 47语言 48

//Math对象
    //该对象中的属性方法 和数学有关.
    //Math是内置对象 , 与Global的不同之处是, 在调用时 需要打出 "Math."前缀.
    //属性学习:
    //alert(Math.PI);
    //方法学习:
        //alert(Math.random()); // 获得随机数 0~1 不包括1.
        //alert(Math.round(1.5)); // 四舍五入
        //练习:获取1-100的随机整数,包括1和100
             //var num=Math.random();
            //num=num*10;
            //num=Math.round(num);
            // alert(num)
        //============max  min=========================
        /* alert(Math.max(1,2));// 2
        alert(Math.min(1,2));// 1 */
        //-------------pow--------------------------------
        alert(Math.pow(2,4));// pow 计算参数1 的参数2 次方.




abs(x)    返回数的绝对值。
exp(x)    返回 e 的指数。
floor(x)对数进行下舍入。
log(x)    返回数的自然对数(底为e)。
max(x,y)    返回 x 和 y 中的最高值。
min(x,y)    返回 x 和 y 中的最低值。
pow(x,y)    返回 x 的 y 次幂。
random()    返回 0 ~ 1 之间的随机数。
round(x)    把数四舍五入为最接近的整数。
sin(x)    返回数的正弦。
sqrt(x)    返回数的平方根。
tan(x)    返回角的正切。

math对象

语言 49语言 50

console.log(Math.random());  // (0,1)
console.log(Math.round(3.54));   // 四舍五入
console.log(Math.floor(3.14));
console.log(Math.pow(2,3));
//【1,100】的随机数
console.log(Math.round(Math.random()*100))

math对象2

   Function 对象

function 函数名 (参数){ 函数体;
    return 返回值;
}

  功用表明:

  可以利用变量、常量或表明式作为函数调用的参数

  函数由第一字function定义

  函数名的概念规则与标识符一致,大小写是乖巧的

  重回值必须选择return

  Function 类可以象征开发者定义的任何函数。

  用 Function 类间接开立函数的语法仍可以是:

var 函数名 = new Function("参数1","参数n","function_body");

  注意:js的函数加载执行与python分裂,它是完整加载完才会实施,所以实行函数放在函数注明下面或上面都得以。

<script>
    //f(); --->OK
    function f(){
        console.log("hello")
    }
    f() //----->OK
</script>

  Function 对象的 length 属性

  ECMAScript 定义的习性 length 表明了函数期望的参数个数。

  Function 对象也有与所有目的共享的 valueOf() 方法和 toString() 方法。那五个点子重回的都是函数的源代码,在调节时进一步有用。

  运算符void()功用:拦截方法的重回值。

alert(void(fun1(1,2)))

语言 51语言 52

function func1(a,b){

    alert(a+b);
}

    func1(1,2);  //3
    func1(1,2,3);//3
    func1(1);    //NaN
    func1();     //NaN

    //只要函数名写对即可,参数怎么填都不报错.

-------------------面试题-----------
 function a(a,b){
    alert(a+b);
}

   var a=1;
   var b=2;
   a(a,b)

函数调用

语言 53语言 54

function add(a,b){

        console.log(a+b);//3
        console.log(arguments.length);//2
        console.log(arguments);//[1,2]

    }
    add(1,2)

    ------------------arguments的用处1 ------------------
    function nxAdd(){
        var result=0;
        for (var num in arguments){
            result+=arguments[num]
        }
        alert(result)

    }

    nxAdd(1,2,3,4,5)

//     ------------------arguments的用处2 ------------------

    function f(a,b,c){
        if (arguments.length!=3){
            throw new Error("function f called with "+arguments.length+" arguments,but it just need 3 arguments")
        }
        else {
            alert("success!")
        }
    }

    f(1,2,3,4,5)

函数的内置对象arguments

语言 55语言 56

// 匿名函数
    var func = function(arg){
        return "tony";
    }

// 匿名函数的应用
    (function(){
        alert("tony");
    } )()

    (function(arg){
        console.log(arg);
    })('123')

匿名函数

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图