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 =7; 2 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=2; 2 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、