javaScript知识点梳理

1、JS中的六种数据类型:boolean,string,number,null,undefined。

2、 

 var one; 
 var two=null; 
 console.log(one==two,one ===two);    //true,false

  one==two是loose comparison,比较的是值;one===two是strict comparison,既比较值,又比较类型。即

                  == equality 等同,=== identity 恒等

  one的值是undefined,two的值为null。js中undefined的值派生自null值,所以规定undefined==null

3、盒子模型。详情按F12。

4、angularjs中的自定义服务有factory,service,provider。

5、JS中定义的函数会优先解析,而不是顺序解析(同步模式),并且若方法同名,后者会覆盖前者。

6、代码从上往下的一次执行,这种模式称之为同步。一部分先执行;另一部分在未来执行的模式称之为异步,如:ajax的post请求的callback回调函数。

7、Array数组对象:

        将已知的arr数组复制给新数组 : var a = arr.slice(0);

8、

1 var obj={“key”:“1”,“value”:“2”};
2 var newObj = obj;   //相当于两个对象指向同一个地址,
                                //修改其中任何一个,另一个也会受到影响

9、$(emit)是向上冒泡   ; $broadcast()是向下传播事件

10、NOSCRIPT标签用来定义在脚本未被执行时的替代内容

11、

1 //已定义好一个checkState函数
2 windows.setTimeout(checkState(), 10000);  //立即被调用
3 windows.setTimeout(checkState, 10000);  //10s后被调用
4 windows.setTimeout(“checkState()”, 10000);  //10s后被调用,带引号的

12、

1 console.log( 1+ "2" + "2");   //字符串相加等于字符串的合并,结果122
2 console.log( 1+ + "2" + "2");   //第一个+“2”中的加号是一元加操作符,会自动转成数值2,结果32                   
3 console.log( "A"- "B" + 2);//"A"- "B"先用Number将函数转换为数值,结果为NaN,在算数运算中有一个为NaN,则结果仍为NaN,结果NaN
4 console.log( "A"- "B" + "2");    //接上,合并后结果为NaN2

13、Number()函数会将对象的值转换为数字,null; empty ;0;默认都会转换成0

14、javaScript是弱类型语言,会根据后面的语言进行转换

1 var a = “40”, b =72 console.log(a%b);   //5

15、

1 var obj = new Boolean('false');  //返回的是对象
2 var flag = Boolean(0);   //返回布尔值False

16、

1 $post(url)是ajax请求;
2 ajax的事件是:ajaxComplete(callback)  ;
3                      ajaxError(callback);
4                      ajaxSend(callback);
5                      ajaxStart(callback);
6                      ajaxStop(callback);
7                      ajaxSuccess(callback)            

 17、

function argsAsArray(fn, arr) {
    return fn.apply(this,arr);
}  //通过argsAsArray方法调用自生的fn方法,传入参数是arr

  apply方法:   apply([thisObj[,argArray]])   ---- 应用某一对象的一个方法,用另一个对象替换当前对象。 参数是数组

    说明: 如果argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 

               如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

  

  call方法:    call([thisObj[,arg1[, arg2[,   [,.argN]]]]])   ---- 调用一个对象的一个方法,以另一个对象替换当前对象。 参数是参数列表

         例子:A.call(B[,args1[,args2...]])    用A对象去替换B对象

    说明: call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 
        如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。 

     借鉴他人的博客:http://uule.iteye.com/blog/1158829
    
18、关于prototype原型  

 1 //使用构造函数法
 2 function createModule(str1, str2) {    
 3     function Obj(){       
 4     this.greeting = str1;       
 5     this.name = str2;        
 6     this.sayIt = function(){   
 7          return this.greeting + ', ' + this.name;  
 8       };  
 9   }   
10     return new Obj();
11 }
12 //构造函数与原型组合
13 function createModule(str1, str2) {    
14     function CreateMod(){   
15         this.greeting = str1; 
16         this.name = str2;  
17   }    
18     CreateMod.prototype.sayIt = function(){      
19         return this.greeting + ', '  + this.name;   
20  }   
21         return new CreateMod();
22 }            

19、toString()方法将对象转换成字符串。如果带参数toString(n),即将其转换成n进制表示。

20、javascript标准事件模型的执行顺序:事件捕获->事件处理->事件冒泡。先事件捕获从windows到document往下级知道特定的事件节点,然后进行事件处理,在事件冒泡,

  从特定节点往上级,完成整个过程。

21、页面性能指标:白屏时间---用户从打开页面开始到也买你开始有东西呈现为止。

                          首屏时间---用户浏览器首屏内所有内容都呈现出来所花费的时间。

             用户可操作时间(dom Interactive)---用户进行正常的点击、输入等操作,默认可以统计dom ready时间,因为通常会在这个时候绑定用户操作。

         总下载时间---页面所有资源加载完成并呈现出来所花费的时间,即页面onload时间。

       参照:http://www.cnblogs.com/chuaWeb/p/PerformanceMonitoring.html

22、javascript中,变量分为基本数据类型和引用数据类型两种,基本数据类型用8字节内存,存储基本数据类型(数值、布尔值、null和未定义)的值,引用类型的变量则只保存对对象、数组和函数等引用类型的值得引用(即内存地址)。javascript内部,所有数字都是以64位浮点数形式存储的。

      基本数据类型:Number、String、Boolean、Undefined、NUll

      复杂数据类型:Object、Array、Function、RegExp、Date、Error

      全局数据类型:Math

  以上,除了NULL,其余的都可以成为JS的内置对象。

23、angular.js中的服务实质上是单例对象。单例模式有第三个特点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须向整个系统提供这个实例。

24、NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用来表示一个本来要返回数值的操作数未返回数值的情况(这样就不会跑出错误了)。

25、一个promise可能有三种状态:等待(pending)、已完成(fulfiled)、已拒绝(rejected)。一个promise的状态只能从“等待”转向“完成”或者“拒绝”态,不能逆向转化,同时“完成”态和“拒绝”态不能相互转化promise实现then方法。(可以说,then是promise的核心),而且then必须返回一个promise,同一个promise的可以调用多次,而且回调的执行顺序和他们被定义时的顺序一致then方法接受两个参数,第一个参数是成功是的回调,在promise由“等待”状态转换到“完成”态是调用,另一个是失败时的回调,在promise由“等待”状态转到“拒绝”态时调用。

26、hasOwnProperty:用来判断一个对象是否有你给出的名称的属性或对象。但此方法无法检查该对象原型链中是否具有属性值,该属性必须是对象本身的一个成员。

      isPrototypeOf用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。

27、

1 var f = function g(){
2          return 23;
3 };
4 typeof g();     //结果是ReferenceError,g is not defined
5 typeof g;      //结果是undefined
6 typeof f();    //结果是number
7 typeof f;    //结果是function

       注: typeof  null  的结果是  object

28、Jquery   siblings()方法返回被选元素的所有同胞元素;

29、回调时,被回调的函数会放在event loop里,等待线程里的任务执行完后才执行event loop里面的代码。

30、对元素的margin设置百分数,是相对于父元素width计算的。

31、Html中的标签分为闭合标签和自闭合标签。自闭和标签有<input/><img/><br/><link/><hr/>等。

32、<hr/>定义水平线。

33、Css样式中的权值大小:第一等:内联样式,如:“style= ”,权值为1000

                                    第二等:ID选择器,如:#content,权值为0100

                                    第三等:类,伪类和属性选择器,如:.content,权值为0010

                                    第四等:代表类型选择器和伪元素选择器,如:div  p,权值为0001

                                      通配符、子选择器、相邻选择器等,如:*、>、+,权值为0000 ;  继承的样式没有权值

34、HTML body部分中的javascript会在页面加载的时候被执行;head部分中的只有在被调用的时候才会被执行。

35、不换行必须设置word-break:break-all 处理单词的打断 和 word-spacing:no-wrap处理元素内的空白,只在一行内显示。

36、link是在加载页面前把Css加载完毕;@import url()是在读取文件文件后加载,所以会出现一开始没有css样式,闪烁一下出现样式后的页面(网速慢的情况下)

37、CSS样式:边距:10px 20px 30px 40px哪一个是底边距?  巧计:顺时针,上右下左。

38、parseInt方法可以将其它进制转换为十进制。

39、基本类型和封装类型进行“==”运算符比较时,封装型会自动拆箱为基本型在比较。

      两个Integer类型进行“==”比较,如果其值在-128至127,那么返回true,否则返回false。

  两个封装型进行equals比较,会先比较类型在比较值。

 1 int a=257 2 Integer b=257 3 Integer c=257 4 Integer b2=257 5 Integer c2=257 6 System.ou.println(a==b);
 7 //System.ou.println(a.equals(b)); //编译出错,基本类型不能调用equals
 8 System.ou.println(b.equals(257.0));
 9 System.ou.println(b==c);
10 System.ou.println(b2==c2);
11 
12 //上面的代码结果依次为true,false,false,true

40、suspend()使得线程进入阻塞状态,并且不会自动回复。

   resume()使进程重新进入可执行状态。(这两个配套使用)

41、6种基本数据类型:byte,bollean,short,char,int,long,float,double。

42、自动数据类型转换:按照由低到高的顺序转换。优先关系如下:

       byte,short,char--> int--> long --> float --> double

      其中,最底层的类型不能进行运算,若有运算会自动向上转换int型。

43、根类Object中的方法:clone();equals();finalize();getClass();notify();notifyAll();hashCode();toString();wait()

44、

1 1 var a=22 2 var b=3;
3 3 if(a=b){...
4 4 }     //在java中“=”赋值是有返回值的,赋什么值就返回什么值
5           //C中赋值后会与0进行比较,大于0返回true,否则false

45、String类是不可改变的类,String str =“123”;str=“1”并不是覆盖而是新建一个内存空间指向它

46、解决哈希冲突的两种方法:开放地址法、链地址法

47、常见的浏览器端存储技术: cookie  、 sessionstorage   、localstorage

48、在HTML body部分中的JavaScripts会在页面加载的时候被执行。 在HTML head部分中的JavaScripts会在被调用的时候才执行

49、javascript中在进行算术运算时,“+号”,数字隐式转换成字符串。其余的运算符号是字符串隐式转换成数字。

50、

posted @ 2017-03-03 09:51  George93  阅读(399)  评论(0编辑  收藏  举报