javascript 中的函数,特性
来源:互联网 发布:网络教育本科毕业证 编辑:程序博客网 时间:2024/05/16 04:43
keyword & methods
- var bar = prompt();
/* get用户的输入,括号中是提示 */ - const CON = 10;
/* 常量名用全大写字母表示 */ - var foo = parseInt("2a");
/* 转化为数字,可追加第二个参数16or8,转化为16进制或8进制 */ - obj.toString();
/* 转化为字符,可追加第二个参数16or8,转化为16进制或8进制 */
String(bar);
/* 转化为字符(null,undefined也可) */ - 将非属数值转化为数值:Number() parseInt() parseFloat()
/* 转化为字符串 value.toString() 或 String(value) */ - 将非布尔值转化为布尔值:Boolean()
/* */ - label 用来标记for之类的循环,再与break continue配合使用
/* break 结束循环 continue 跳过这一轮,直接进行下一轮 */
/* label: for(){} break label */ - switch(expression){case value: statement break; case value: statement break; default: statement}
/* default相当于else */
/* switch 比较case时用的是 ===全等 */ - bar-- ,--bar 前置递减与后置递减的区别;
/* 区别:先计算还是先减一 */official methods
- var bar = Math.random() ;
/* return 一个 0~1 之间的小数 */
var bar = Math.floor(foo);
/* return去掉小数部分的foo,可与Math.random配合使用,效果拔群 */ array's method:
/* inside[] 用arr[0]来get */- .length
- .push(foo,bar,...)
/* 追加foo,bar到末尾 */ - .shift()
/* 去除第一项并return之 */
/* .unshift(foo,bar,...) */ - .reverse()
/* 颠倒 */ - .sort(foo)
/* 使用之前要声名函数foo,用foo来对此array进行排序 */
/* 在foo中输入两个参数,return正数则num1排至num2之后,return负数则相反,return 0视为相等 */
/* 默认情况为升序 */ - .concat("",[1,2,3])
/* 复制该array,将""和[]追加至尾部 */ - .slice(1,4)
/* 切片,[1]至[3]的部分,将之return */ - .splice(1,2,foo)
/* 替换,从[1]开始,删除两项,替换为foo */ - .indexOf() 从头检索
/* lastIndexOf() 从后检索 */ - 迭代method:every(), filter(), forEach(), map(), some()
/* (function(item, index, array){return(item)}) */
/* every 与门 ,some 或门 , filter return(item > 2) */
/* forEach() 对每一项运行传入的函数 , map() 对应项运行传入的函数后return这个新array */ - .indexOf() 从头检索
/* lastIndexOf() 从后检索 */ - .reduce(function(prev, cur, index, array){return ...}, origin) 归并
/* reduceRight() 方向相反,从尾部开始 */
/* origin可选,为初始值 */
正则表达式RegExp:
- .
/* */
- .
- 默认Object类型:Array, Date, RegExp
/* return 一个 0~1 之间的小数 */
特性
- 可通过方括号来访问对象的attributes obj["name"] === obj.name
/* 优势在于可填入变量 */ - arr[arr.length] = xx;
/* 在array的尾部追加一项 */ - callback 函数中的参数函数名可以直接替换为expression:function(){return;}
/* */ - 参数通过arguments这个数组来传递给函数
/* 在function内部可以通过arguments来访问此数组 */ - string是array,array未必是string
/* */ - 每个function有其对应的variable environment
/* 若是在function中声明的function,他的environment拥有父function的local var以及global*/
/* closure:nested function的free variable 与environment能找到对应的声明,function is closed */ - function is pass-by-value
/* 由于存储object的变量是指向object的指针,当arguement是object时,function的操作会改变该object本身 */ - function 可以在call之后再declare
/* two passes */ - class constructor:
function foo(a1,a2)
{this.a1 = a1; this.a2 = a2;}
/* */ - typeof foo;
/* 显示数据类型"string"、"array" */ - bar instanceof foo;
/* 判断foo是否bar的constructor,return一个bool */ - foo === bar
/* 严格相等:type和value都相等 */ - const VARIABLE = 1;
/* 声明常量,常量名全大写 */
let va = 1;
/* 此变量只在块内有效 */ - 若把非数值变量用在一元加减计算中,会调用它们的valueOf(),或toString()
/* */ - undefined
/* 未初始化 */
null
/* doesn't exist yet,usage: if(foo != null) */
/* undefined == null */
NaN != NaN
/* NaN与任何value都不相等,包括NaN自己; 用isNaN(foo)来检验foo是不是NaN */
/* typeof NaN, return number ; isNaN("string") return true*/ object:
/* property之间用逗号分隔,不是分号 */- object constructor:
constructor.prototype: 原型体
/* prototypes are dynamic, 在其中添加的property、method,都会影响到instances */
/* constructor特有的method */
function Foo(a1,a2){this.a1 = a1; this.a2 = a2;}
/* 类名首字母大写,相比于function,只是多了this. */var bar = new Foo(a1,a2);
/* 类名首字母大写;不要忘记new operator,否则没有object returned */var bar = new Foo(params){this.a1 = params.a1};
/* 若参数太多,为防止参数value顺序出错,可先封装至一个临时objectParams,再pass给constructor */
/* constructor与prototype的区别,consturctor中的property,新建的instances中一定有,而prototype的则没有(一个负责初始化,一个负责继承,有了constructor,才有prototype) - ShowDog.prototype = new Dog()
/* ShowDog这个constructor将继承Dog的prototype,之后可能需要ShowDog.prototype.constructor = ShowDog */
/* 在ShowDog的constructor中可使用Dog.call(this,arg1,arg2),使该constructor拥有Dog的constructor的参数,即不必再复制this.arg1 = arg1 */ - truck instanceof Car
/* 检测truck的constructor是否Car,return一个bool */ - obj.constructor
/* return该object的constructor,即function foo(){_} */ - obj.hasOwnProperty("propName")
/* 检测obj是否有此property,return一个bool(prototype中的不算) */ - delete obj.pro
/* 删除该property */ - console.log(obj)
/* printf */ - var obj = {a:1, b:function(){return x} }
/* printf */ - for(var p in obj){}
/* for in 用来iterate object */ - obj.name; obj[name]
/* get property; it can be variable or expression in brackets */ - js自带object-constructor: Date,Array,Error,
/* get property; it can be variable or expression in brackets */ - string.charAt(0)
/* return 第0项 */
string.substring(start,end)
/* string中截取一段,小的那个是start */ - Object的每个instance都有的method、attribute:
/* .constructor */
/* .hasOwnProperty(name) name必须是string */
/* .isPrototypeOf(object) */
/* .propertyIsEnumerable(propertyName) 检查是否能用for-in来枚举 */
/* .toLocaleString() */
/* .toString() */
/* .valueOf() */
- object constructor:
DOM
- .innerHTML
/* element的内容 */ - 在header中script执行时,browser 还没有 load html,所以还没有DOM,故此时document的method都用不了
/* */ - obj.setAttribute ("attribute'sName","valueOfAttribue")
/* It's a method that change/add attribute of element*/
obj.getAttribute ("attribute'sName")
/* return value of attribute */ - docment.getElementByTagName("element")
/* 字面意思,return一个由element-objects组成的Nodelist(like array)*/ events
element.onmouseover = functionName;
/* 鼠标一碰,call function; element.onmouseout相反*/
setTimeout(functionName, 5000,arguement)
/* 5000毫秒后call function(arguement)*/
setInterval(functionName, 5000)
/* 每隔5000毫秒call function*/handler event's property
.target
/* 遭到点击的element*/
.type
/* 该event的type*/
.clientX/Y || .screenX/Y || pageX/Y
/* 相对于窗口/屏幕/页面的坐标 */
0 0
- javascript 中的函数,特性
- javascript中的继承特性
- JavaScript的函数式特性
- javascript 的一些特性--函数
- JavaScript ES6中的新特性
- Javascript中的变量的特性
- C++中的函数新特性
- Python中的函数特性map(),
- JavaScript初探之二_函数特性
- JavaScript笔记;函数的基本特性
- javascript中的高级特性及特别对象
- JavaScript语言中的Literal Syntax特性
- 领悟 JavaScript 中的面向对象特性
- JavaScript语言中的Literal Syntax特性(网摘)
- JavaScript中的Array操作(ECMA5新特性)
- 深入理解JavaScript中的属性和特性
- javascript中的字符串函数
- Javascript中的IsNumeric函数
- 20个常用模拟电路(详细分析)
- CodeFirst试水
- mysql日志
- 接口优化01
- css中的层叠上下文,层叠水平与层叠顺序
- javascript 中的函数,特性
- Edge Case(UVALive 6270)(大数加法)(模板)
- Java媒体框架(JMF)
- 程序设计语言理解
- No orientation specified, and the default is horizontal. This is a common source of bugs
- 【Github教程】史上最全github使用方法:github入门到精通之二
- 中文依存句法分析概述及应用
- java中自己实现一个服务端对应多个客户端的简单代码
- 微信公众号查看粉丝信息接口