js笔记复习(1)

				js复习

11、12、14、17、18、22、24、25、28、29、30、32、33、、35、36、37、38、39、40
11、事件委托是什么?
让利用事件冒泡的原理,让自己所触发的事件,让他的父元素替代执行!

			12、闭包是什么,有什么特征,对页面有什么影响

闭包是一个函数,闭包就是能够读取其他函数内部变量的函数。

优点:在函数执行完之后依旧保持没有被垃圾回收处理掉
缺点:增大内存的使用量,可能会导致内存泄漏;

			14、添加 删除 替换 插入到某个接点的方法

添加:obj.appendChidl( ) 删除:obj.removeChild( ) 替换:obj.innersetBefore( ) 插入:obj.replaceChild( )

			17、"="和"==="的不同

前者会自动转换类型,后者不会
18、javascript的同源策略
一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合。

22、已知ID的input输入框,希望获取这个输入框的输入值,怎么做?(不使用第三方框架)

document.getElementById(“ID”).value

24、设置一个已知的ID的DIV的html内容为xxx,字体颜色设置为黑色(不使用第三方框架)

var dom=document.getElementById(“ID”)
dom.innerHTML=“xxxx”
dom.style.color="#000"

25、当一个DOM节点被点击的时候,我们希望能够执行一个函数,应该怎么做?

直接在DOM里绑定事件:


在js里通过onclick绑定:xxx.οnclick=test
通过事件添加进行绑定:addEventListener(xxx,‘click’,test)
js事件流模型都有什么?
“事件冒泡”:事件开始由最具体的元素接受,然后逐级向上传播
“事件捕捉”:事件由最不具体的节点先接受,然后逐级向下,一直到最具体的
“DOM事件流”:三个阶段:事件捕捉,目标阶段,事件冒泡

28、看下列代码,输出什么?解释原因。
var undefind;
undegined==null;  //true         👍undefined与null相等,但不恒等(===)
1==true;		//true	👍将布尔值转换为number类型,true是1
2==true;		//false	👍将布尔值转换为number类型,true是1
0==false;		//true	👍将布尔值转换为number类型,false是0
0=='';		//true	👍
NaN==NaN	//false	👍NaN是唯一,不等于任何值,包括本身
[ ]==false;		//true	👍
[ ]==![ ];		//true	👍

var foo=“11”+2-“1”
console.log(foo);
console.log(typeof foo);
执行完后foo的值为111,foo的类型为String.

29、看代码给答案

var a=new Object( ); (考察引用数据类型细节)
a.value=1;
b=a;
a.value=2;
alert(a.value) 答案:2

30、数组变字符串:  alert(stringArray.json(""))

已知有字符串foo=”get-element-by-id”,写一个function将其转化成驼峰表示法”getElementById”。

function combo(msg){
var arr=msg.split("-");
for(var i=1;i<arr.length;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substr(1,arr[i].length-1);
}
msg=arr.join("");
return msg;
}

32、输出今天的日期,以YYYY-MM-DD的方式,比如今天是2014年9月36日

var d=new Date( );
//获取年,getFullYear( )返回4位的数字
var year=d.getFullYear( );
//获取月,月份比较特殊,0是1月,11是12月
var mouh=d.getMonth( ) +1;
//变成两位
moth=moth< 10? ‘0’+month : month;
//获取日
var day=d.getDate( );
day=day<10? ‘0’+day:day;
alert(year + ‘-’ +month + ‘-’ +day);

33、将字符串”<tr><td>{$id}</td><td>{$name}</td></tr>"中的{$id}替换成10,{$name}替换成Tony(使用正则表达式)

答案:”{KaTeX parse error: Expected 'EOF', got '}' at position 3: id}̲</td><td>{id}_{$name}”.replace(/{$id}/g, ’10′).replace(/{$name}/g, ‘Tony’);

35、foo=foo||bar,这行代码是什么意思?为什么要这样写?

答案:if(!if)foo=bar; //如果foo存在,值不变,否则把bar的值赋给foo
短路表达式:作为”&&”和”||”操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。

36、看下列代码,将会输出什么?(变量声明提升)

var foo=1;
function( ){
console.log(foo);
var foo=2;
console.log(foo);
}
答案:输出undefined和2。以上代码相当于:
var foo=1;
function( ){
var foo;
console.log(foo); //undefined
foo=2;
console.log(foo); //2;
}
函数声明与变量声明会被JavaScript引擎隐式地提升到当前作用域的顶部,但是只提升名称不会提升赋值部分。

37、用js实现随机选取10–100之间的10个数字,存入一个数组,并排序。

var iArray = [];
funtion getRandom(istart, iend){
var iChoice = istart - iend +1;
return Math.floor(Math.random() * iChoice + istart;
}
for(var i=0; i<10; i++){
iArray.push(getRandom(10,100));
}
iArray.sort();

38、把两个数组合并,并删除第二个元素

var array1 = [‘a’,‘b’,‘c’];
var bArray = [‘d’,‘e’,‘f’];
var cArray = array1.concat(bArray);
cArray.splice(1,1);

39、怎样添加、移除、移动、复制、创建和查找节点(原生JS,实在基础,没细写每一步)

1)创建新节点
createDocumentFragment() //创建一个DOM片段
createElement() //创建一个具体的元素
createTextNode() //创建一个文本节点
2)添加、移除、替换、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替换
insertBefore() //插入
3)查找
getElementsByTagName() //通过标签名称
getElementsByName() //通过元素的Name属性的值
getElementById() //通过元素Id,唯一性

40、有这样一个URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e,
请写一段JS程序提取URL中的各个GET参数(参数名和参数个数不确定),将其按key-value形式返回到一个json结构中,
如{a:’1′, b:’2′, c:”, d:’xxx’, e:undefined}。
答案:

function serilizeUrl(url) {
var result = {};
url = url.split("?")[1];
var map = url.split("&");
for(var i = 0, len = map.length; i < len; i++) {
    result<script>jQuery(function($) {$("#google-maps-1").gMap({controls: false,scrollwheel: false,markers: [{address: "",icon: {image: "http://blog.jobbole.com/wp-content/themes/jobboleblogv3/_assets/img/_colors/red/pin.png",iconsize: [32, 32],iconanchor: [16,27],infowindowanchor: [16, 27]}}],address: "",zoom: 15,icon: {image: "http://blog.jobbole.com/wp-content/themes/jobboleblogv3/_assets/img/_colors/red/pin.png",iconsize: [32, 32],iconanchor: [16,27],infowindowanchor: [16, 27]}});});</script><div id="google-maps-1" class="google-maps" style="width: 100%; height: 200px;"></div>.split("=")[0]] = map[i].split("=")[1];
}
return result;

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值