由于函数控件中总归是需要写一些代码的,这些代码都基于JS,所以在这里补充一点JS的基础知识。如果有JS基础,可以跳过。如果没有JS基础,并且看不懂,也可以跳过——等到确实需要的时候,再回来翻看一下。
篇幅限制,此处不能把JS的基础全部覆盖,我挑选了一些我认为有用的知识写在这里。由于我并不是前端工程师,所以这篇文章东拼西凑的,见谅。
变量声明如下:
1. var myFirstVar;
声明可以由逗号分隔在同一行:
2. var myFirstVar, mySecondVar;
它们被指派一些初始值使用=操作符。
3. var myFirstVar = 0;
1.Date对象用于处理日期和时间。
创建Date对象的语法:
4. var myDate = new Date();//Date对象会自动把当前日期和时间保存为其初始值。
Date对象属性:
Constructor : 返回对创建此对象的Date函数的引用
Prototype : 使您有能力向对象添加属性和方法。
Date对象的方法:
方法 描述
Date()
返回当日的日期和时间。
getDate()
从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay()
从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth()
从 Date 对象返回月份 (0 ~ 11)。
getFullYear()
从 Date 对象以四位数字返回年份。
getYear()
请使用 getFullYear() 方法代替。
getHours()
返回 Date 对象的小时 (0 ~ 23)。
getMinutes()
返回 Date 对象的分钟 (0 ~ 59)。
getSeconds()
返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds()
返回 Date 对象的毫秒(0 ~ 999)。
getTime()
返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset()
返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate()
根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay()
根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth()
根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear()
根据世界时从 Date 对象返回四位数的年份。
getUTCHours()
根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes()
根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds()
根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds()
根据世界时返回 Date 对象的毫秒(0 ~ 999)。
parse()
返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate()
设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth()
设置 Date 对象中月份 (0 ~ 11)。
setFullYear()
设置 Date 对象中的年份(四位数字)。
setYear()
请使用 setFullYear() 方法代替。
setHours()
设置 Date 对象中的小时 (0 ~ 23)。
setMinutes()
设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds()
设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds()
设置 Date 对象中的毫秒 (0 ~ 999)。
setTime()
以毫秒设置 Date 对象。
setUTCDate()
根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth()
根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear()
根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours()
根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes()
根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds()
根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds()
根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
toSource()
返回该对象的源代码。
toString()
把 Date 对象转换为字符串。
toTimeString()
把 Date 对象的时间部分转换为字符串。
toDateString()
把 Date 对象的日期部分转换为字符串。
toGMTString()
请使用 toUTCString() 方法代替。
toUTCString()
根据世界时,把 Date 对象转换为字符串。
toLocaleString()
根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString()
根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString()
根据本地时间格式,把 Date 对象的日期部分转换为字符串。
UTC()
根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
valueOf()
返回 Date 对象的原始值。
Array对象:
创建Array数组对象的语法:
5. New Array();
6. New array(size);
7. New array(element0,element1,…….,element);
参数:
参数 size 是期望的数组元素个数。返回的数组,length 字段将被设为 size 的值。
参数 element …, elementn 是参数列表。当使用这些参数来调用构造函数 Array() 时,新创建的数组的元素就会被初始化为这些值。它的 length 字段也会被设置为参数的个数。
返回值:
返回新创建并被初始化了的数组。
如果调用构造函数 Array() 时没有使用参数,那么返回的数组为空,length 字段为 0。
当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数、元素为 undefined 的数组。
当其他参数调用 Array() 时,该构造函数将用参数指定的值初始化数组。
当把构造函数作为函数调用,不使用 new 运算符时,它的行为与使用 new 运算符调用它时的行为完全一样。
Array对象方法:
方法 描述
concat()
连接两个或更多的数组,并返回结果。
join()
把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop()
删除并返回数组的最后一个元素
push()
向数组的末尾添加一个或更多元素,并返回新的长度。
reverse()
颠倒数组中元素的顺序。
shift()
删除并返回数组的第一个元素
slice()
从某个已有的数组返回选定的元素
sort()
对数组的元素进行排序
splice()
删除元素,并向数组添加新元素。
toSource()
返回该对象的源代码。
toString()
把数组转换为字符串,并返回结果。
toLocaleString()
把数组转换为本地数组,并返回结果。
unshift()
向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()
返回数组对象的原始值
JavaScript支持各种类型如下:
JavaScript支持的基本类型
8. var anInt = 0; //int类型
9. var aFloat = 2.5;//浮点型
10. var aBoolean = true;//布尔型(true , false)
11. var aString = “This is a string”; //支付串
12. var anArray =(1、2、3); //数组
13. var anObjectLiteral =
14. {
15. someField :“Some value”
16. };
17. Var aFunction= function(){返回;};/ /函数
18. var re = / ab + c /;/ /正则表达式
您可以使用这样的新运算符实例化对象:
19. var aDate = new Date();
注释可以使用双斜杠单行或c风格的多行注释的格式:
20. / /这是一行注释
21. /*
22. 这是一个多行注释23. */
内置的数值运算符包括通常的:+(加),(减法),/(部门)*(乘法),%(模)。
24. var a = 6;
25. a= + 1;/ /a是7
26. b = b % 2;/ / b是3
27. a+ +;/ /a是8
28. a-;/ /a是7
29. a+ = 3;/ /a是10
字符串可以连接如图所示:
30. var aString = “The value of a is ” + a;
31. var greeting = “What a very “;
32. greeting += “nice day”;
typeofoperator返回一个变量的类型。
33. typeof aString;/ /返回“字符串”
确定对象的类,例如区分数组和其他对象,对象。toStringmethod可以使用如下:
34. Object.prototype.toString.call(new Date()); / /“data对象”
35. Object.prototype.toString.call([1,2,3]);/ / “(对象数组)
36. Object.prototype.toString.call({someField:12}); / /“对象对象”
37. Object.prototype.toString.call(function(){return;});/ / “(目标函数)
toString() 方法可把数组转换为字符串,并返回结果。
语法:
ArrayObject.toString()
返回值:
ArrayObject 的字符串表示。返回值与没有参数的 join() 方法返回的字符串相同。
实例:
Var arr = new array(3)
Arr[0] = “George”
Arr[1] = “John”
Arr[2] = “Thomas”
Document.write(arr.toString())
输出:
George,John,Thomas
您可以使用比较运算符,<(小于)>(大于)< =(小于或等于)> =(大于或等于)= =(等于)! =(不等于)ifstatements如下:
38. var = 1;
39. var b =null;(null为空)
40. if(a> 0){
41. b =“大于零”;
42. }else {
43. b =“是零或更少”;44. }
Javascript支持for循环 and while循环:
45. for (var i= 0 ; i< anArray.length; i + +)
46. {
47. console.log(myArray[i]);
48. }
49. while (x < 10)
50. {
51. console.log(x + +);52. }
1创建函数
调用一个函数,你可以调用如下:
53. function addOne(x){
54. return x+1
55. }
56. var y = addOne(5);/ / y = 6
或者,如果函数是对象的一个方法,例如一个日期对象
57. var d = new Date();
58. var year= d.getMonth();/ /一月为0,二月为一
2.parseInt()
parseInt()函数可解析一个字符串,并返回一个整数。创建paseInt函数:
parseInt(String , radix);
String :必须,要被解析的字符串。
Radix:可选。表示要解析的数字的基数。该值介于2~36之间。如果省略该参数或其值为0,则数字将以10为基础来解析。如果它以“0x”或“0X”开头,将以16为基数。如果该参数小于2或者大于36,则parseInt()将返回NaN.
例如:
59. parseInt(“10”); //返回 10
60. parseInt(“19” , 10) ; //返回19(10+9)
3.parse()
3.parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。
语法:
Date.parse(datestring);
参数:
Datestring : 必须。表示日期和时间的字符串。
返回值:
指定的日期和时间剧19701/1午夜(GMT时间)之间的毫秒数。
说明:
该方法是 Date 对象的静态方法。一般采用 Date.parse() 的形式来调用,而不是通过 dateobject.parse() 调用该方法。
实例:
在本例中,我们将取得从1970/01/01到2005/07/08的毫秒数:
61.
62.
63. var d = Date.parse("Jul 8, 2005")
64. document.write(d)
66. 输出:
67. 1120752000000
node.Js是一个基于事件的框架,只有一个执行线程。要允许在执行i/o或等待计时器过期时执行多个任务,将广泛使用回调。例如,要在2秒钟后将“完成”登录到控制台,可以使用匿名函数回调如下:
68. setTimeout(函数(){ console.log(“做”);},2000);
您可以使用函数来处理数组:
69. var friends = [“mike”,”roberto”, “rodger”, “ted”, “daniel”];//实例化一个朋友数组
70. friends.forEach(function (eachName,index){//循环遍历名字
71. console.log (index + 1 +”.“+ eachName);/ / 1. mike 2. roberto 3. rodger 4. ted 5. daniel 72. });
异常处理代码中可以用来捕获错误。这样做,你的代码封装在一个try / catch块。
73. try {
74. // try to do something需要处理的代码
75. }catch (e){
76. // handle errors 捕获的错误
77. }finally {
78. // this block is always executed regardless of whether there was an exception无论是否有异常,这个块总是执行。
79. }
JavaScript中的“上下文” 指的是什么:
上下文是从英文context翻译过来,指的是一种环境。
在软件工程中,上下文是一种属性的有序序列,他们为驻留在环境内的对象定义环境。
在对象的激活过程中创建上下文,对象被配置为要求某些自动服务,如同步,事务,实时激活,安全性等等。又比如计算机技术中,相对于进程而言,上下文就是进程执行时的环境。
具体来说就是各个变量和数据,包括所有的寄存器变量,进程打开的文件,内存信息等。
JavaScript的执行上下文的理解是一种大概模糊的理解。
上下文原意是content,
Content指的是函数被调用的时候,查看this指向那个object,那么那个object就是当前的“上下文”。
总之我的理解就是:当前执行环境的作用域,因为“上下文”如果离开了执行环境就没有啥实际意义了。