JS学习总结

注明:本文参考了“高先生的猫”的博文

1. javascript的typeof返回哪些数据类型.

string,boolean,number,undefined,function,object

2. 例举几种强制类型转换和隐式类型转换?

强制:{
   
数值:parseInt,parseFloat,number
字符串:toString,string
布尔:boolean
}

隐式:{
   1.对于 "==" 操作符,通常都会先隐式转换(强制转换),然后再比较它们的相等性。
	 2.对于"==="操作符
	 }
 ---------------------------------------------------------------------------------
隐式转换的特殊规则
	1.null 和 undefined 是相等的。
	2.要比较相等性之前,不能将 null 和 undefined 转换成其他任何值。
	3.如果有一个操作数是 NaN,则相等操作符返回 false,而不相等操作符返回 true。
	4.如果两个操作数都是对象,则比较它们是不是同一个对象。(比较引用类型的地址是否相同)
	null == undefined  // true
    NaN == NaN         // false
    NaN != NaN         // true
    false == 0         // true
    undefined == 0     // true
    null == 0          // true

3. split() join() 的区别

1.split()是将字符串切割成数组的形式
2.join()是将数组转换成字符串

4. 数组方法pop() push() unshift() shift()

1.push()/pop()都是在数组尾部追加/删除元素
2.unshift()/shift()是在数组头部追加/删除元素

5. ajax请求的时候get 和post方式的区别

1.post安全性更高
2.get请求的数据有限制,post没有
3.get的请求参数会在URL中显示,数据暴露容易被偷窃,post数据在请求体中,更安全
4.post需要设置请求头
 ---------------------------------------------------------------------------------
GET请求示例:
function getClick() {
   
    var xmlHttp = window.XMLHttpRequest ? 
        new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
 
    var username = document.getElementById("userName").value;
    var age = document.getElementById("userAge").value;
 
    //添加参数,以求每次访问不同的url,以避免缓存问题,如果url不更新,则每次访问都是调用缓存中的数据,而不是服务器最新数据
    xmlHttp.open("get", "Server.aspx?username=" + encodeURIComponent(username)
        + "&age=" + encodeURIComponent(age) + "&random=" + Math.random());
 
    xmlHttp.onreadystatechange = function () {
   
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
   
            document.getElementById("result").innerHTML = xmlHttp.responseText;
        }
    }
    //发送请求,参数为null
    xmlHttp.send(null);
}


Post请求示例:
function postClick() {
   
    var xmlHttp = window.XMLHttpRequest ?
        new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
 
    var username = document.getElementById("userName").value;
    var age = document.getElementById("userAge").value;
            
    var data = "username=" + encodeURIComponent(username)
        + "&age=" + encodeURIComponent(age);
 
    //不用担心缓存问题
    xmlHttp.open("post", "Server.aspx", true);
 
    //必须设置,否则服务器端收不到参数
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 
    xmlHttp.onreadystatechange = function () {
   
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
   
            document.getElementById("result").innerHTML = xmlHttp.responseText;
        }
    }
 
    //发送请求,要data数据,data放在请求体中,而不是URL
    xmlHttp.send(data);
}

6. call和apply的异同

1.不同点:区别在于接收参数的方式不同。call的第二个参数可以是任意的类型,而apply的第二个参数必须是数组,也可以是arguments。
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)

2.相同点:call()方法和apply()方法的作用相同:改变this指向。
 ---------------------------------------------------------------------------------
 function add(c, d){
    
    return this.a + this.b + c + d; 
} 
var apple = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值