关于js填坑(挺乱的,自己整理以后备用)

本文探讨了JavaScript中对象类型的判断方法,包括typeof和Object.keys的使用,以及FileReader和FormData类在文件读取和上传中的应用。深入解析了base64、二进制读取及表单数据传输的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

判断对象类型

使用 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可以选择 是用的时候很难选择 原生的似乎也不错

再接再厉吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值