判断对象类型
使用 typeof obj 进行判断(可以对对象 方法 属性)进行判断 可以判断是否可以使用该方法
var objname;直接定义未初始化对象的时候 type 为"undefined"
var objname = null的时候 type 为"object" (null是属于object的)
在进行 typeof的时候注意这个细节
但是只要定义了objname 不管有没有初始化都可以使用if(objname || !objname)来判断 未定义不能使用 因为会报"undefined"的错
###在使用插件的时候使用if(window.name) 可以判断当前浏览器支不支持该插件
###有的时候获得object,我们想要知道它的属性以取相应的值 这个时候我们可以使用 Object.keys(obj) 来获取属性的数组
使用for(i in obj)的方式可以直接打印属性 obj[i]则是获取属性对应的值
h5新出了FileReader 类 可以对文件进行 base64,二进制等形式的读取
与之对应的有Formdata类可以模拟表单进行数据的传输 在使用formdate传输文件时ajax的 processData和contentType应该改为false;
$.ajax({
type: "POST",
url: url,
data: formData,
contentType: false,
processData: false,
success: function () {
alert("文件上传成功")
},
error: function () {
alert("我也不想错的");
}
})
}
具体的使用方法还请百度
数据流与base64
对img和canvas浏览器提供了 toDataUrl()生成base64和toBlob(function(blob){//回调使用blob 注意异步使用})
另外要注意 toBlob ie和edge是不支持的 但是与之对应的是msToBlob方法,没有回调,直接获取二进制数据
ext
我还发现了一个对文件生成url的好方法
URL.createObjectURL(file);
直接指定到 文件 可以放到 src里 但是要记得使用完之后 要释放掉
URL.revokeObjectURL(fileUrl);
end:对表单上传一直有很深的忌讳 现在又form.js 和formdate可以选择 是用的时候很难选择 原生的似乎也不错
再接再厉吧