javascript 常识知识点


1.内在类型number,string,boolean,object,function,undefined,所以没有内置的Integer.parseInt,因为没有定义这个类

2Number类所有的值保存均为64位浮点,所以1===1.0,这里面有两个特殊的值NaN非数,Infinity,前者有IsNan方法,后者大于任何数

3、字符串不是对象,所以传递字符串也是拷贝传递,字符串表示为16位Unicode,可以用\u对应的转义码来表示字符

4、对于==:false,null,undefined,空字符串,数字0,NaN被当作false

5. 对于&&和||:对于||,如果第一个为假,则返回第二个值,如果第一个为真,则返回第一个;对于&&,如果第一个为假,则返回第一个值,否则产生第二个值

6.对象是拥有键值对,字符串不是对象,对象的检索如果引用不存在的键的值,会抛出TypeError,但是引用不存在的键,会得的undefined,不会抛出异常

7.每个对象都有一个原型对象,你可以制定该对象的原型对象,可以随便找一个对象作为原型,在JS世界中,你可以拷贝一个对象的灵魂。

8.函数也是对象,对象连接到Obejct.prototype,函数连接到Function.prototype。

9.函数的调用模式:方法模式,函数模式,构造器模式,apply模式。方法调用模式一般用于修改对象内部的变量的值(函数是对象的属性方法),函数调用模式this绑定到全局window,最为常见的方式,构造器模式JS对类的妥协,不推荐这种模式,apply模式最大好处修改this的值

10.参数是免费赠送给函数的,参数是一个伪数组,只有length属性

11 return语句返回函数,return空则为return undefined。

12.为JS内置类增加方法是可取的。String.prototype.method=function(s){//......return this;}

13.JS作用域是函数作用域,在函数内部定义函数外是看不到的,但不同的是在函数内部定义的可以在函数的任何位置看到。

14.闭包CLOSURE.一句话:函数可以访问它被在创建时所处的上下文环境(注意是访问,而不是拷贝,先关联,后访问)

15闭包最经典的例子:

var handlers =function(nodes){

var i=0;for(i=0;i<nodes.length;i++){

    nodes[i].οnclick= function(i){

        return function(e){

        alert(e);

        };

        }(i);

}

1)onclick定义的是函数,所以函数执行体返回的是一个function

2)function()执行只是一个表达式,在执行后返回的函数给onclick赋值

3)nodes[i]中的i不存在闭包现象,因为i定义在同一个区域,而function里面的i存在闭包现象,因为有func作用域

16.JS中数组只是array-like,它没有数组一样的数据结构,他把下表转换成字符串作为属性,数组只是对象,但是有一个诡异的length属性

17JS中数组Array是一个伪类,他有方法

18.数组和对象何时用数组何时用对象要把握好

19.数组的length等于最大的整数属性+1,而不一定是数组属性的个数

20。判断一个对象是否是数组可以使用下面的语句

return value &&
typeof value=='objcet'&&
typeof value.length =='number'&&
typeof value.splice=='function'&&
!value.propertyIsEnumerable('length')


21,关于继承,只推荐原型继承:

if(typeof Object.beget!==='function'){
  Object.beget=function(o){
    var F= function(){};
    F.prototype=o;
    return new F();
  }
}

22.要善于运用对象,有时候对象比数组更实用,有时候数组比对象更灵活。下面这个例子是统计文本中出现的各个单词的个数


function cnt(text){
  var arr = text.split(/[\s,.\:]+/);
  var res={};
  for(var i=0;i<arr.length;i++){
    if(typeof res[arr[i]] === 'number' && res.hasOwnProperty(arr[i]))  res[arr[i]]++;
    else res[arr[i]]=1;
 } return res;
 }








  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值