js工作中的小结

js遇到的一些问题


1 ajax标准写法

jquery向服务器发送一个ajax请求后,可以返回多种类型的数据格式,包括:html,xml,json,text等。

用法:

    $.ajax({
        url:"http://www.test.com",    //请求的url地址
        dataType:"json",   //返回格式为json
        async:true,//请求是否异步,默认为异步,这也是ajax重要特性
        data:{"id":"1","name":"名字"},    //参数值
        type:"GET",   //请求方式
        beforeSend:function(){
            //请求前的处理
        },
        success:function(req){
            //请求成功时处理
        },
        complete:function(){
            //请求完成的处理
        },
        error:function(){
            //请求出错处理
        }
    });


2 jqeury 获取当前时间

getmonth()少一个月

js中获得月份getmonth()+1 dateObject 的月份字段,使用本地时间。返回值是 0(一月) 到 11(十二月) 之间的一个整数。
    /**
     * 
     * 获取当前时间
     */
    function p(s) {
        return s < 10 ? '0' + s: s;
    }
    
    var myDate = new Date();
    //获取当前年
    var year=myDate.getFullYear();
    //获取当前月
    var month=myDate.getMonth()+1;
    //获取当前日
    var date=myDate.getDate(); 
    var h=myDate.getHours();       //获取当前小时数(0-23)
    var m=myDate.getMinutes();     //获取当前分钟数(0-59)
    var s=myDate.getSeconds();  
    
    var now=year+'-'+p(month)+"-"+p(date)+" "+p(h)+':'+p(m)+":"+p(s);


3 jquery 和 js 获取select中的值

jqeury 获取 selected 中的值


    $("#s option:selected").text();  // 获取选中的option的 文本值
    
    获取select中option的被选中的 value值
    
    $("#s").val();
    
    $("#s option:selected").val();

js获取select选中的值:

    var sel=document.getElementById("select1");
    
    var index = sel.selectedIndex; // 选中索引
    
    albumid= sel.options[index].value;//要的值


4 js 自动换行 报错

由于 excel 默认 转行, 在存到数据库的时候 加上了换行符号\t\n, 前端渲染的时候报错

1 数据库中 储存的 字段 pay_name = DOAPU_MDSAI_ASDSA \t\n

2 在 前端 setvalue ($(“#id1”).val, pay_name) 报错 导致后续不能进行。。。。

    
        $('#sch_box').combobox({
            required: true,
            width: 400,
            onBeforeLoad: function () {
                $(this).combobox('setValue', 'BIGO TECHNOLOGY PTE LTD BLDG 
    '); 


5 js 中的集合与map

ES6 提供了新的数据结构 Set

集合Set—对应Array

类似于数组,但是成员的值都是唯一的,没有重复的值。

//例1
const s = new Set();
[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));
for (let i of s) {
  console.log(i); //2,3,5,4
}

//例2 

 const set = new Set([1, 2, 3, 4, 4]);

// 例3
// Array.from方法可以将 Set 结构转为数组。

const items = new Set([1, 2, 3, 4, 5]);
const arr = Array.from(items);

四个操作方法

add(value):添加某个值,返回Set结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值。

Set的遍历

Set 结构的实例有四个遍历方法,可以用于遍历成员。
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():使用回调函数遍历每个成员

集合Map—对应Object对象

JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),传统上只能用字符串当作键。 这给它的使用带来了很大的限制。ES6 提供了 Map 数据结构,“键值对”的数据结构,Map 比 Object 更合适

//例
var m = new Map([[{a:1}, 1], ["aa", 2]]);
console.log(m)

Map属性和操作方法

属性/方法 作用
size属性 size属性返回 Map 结构的成员总数。
set(key, value) set方法设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。set方法返回的是当前的Map对象,因此可以采用链式写法。
get(key) get方法读取key对应的键值,如果找不到key,返回undefined。
has(key) has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。
delete(key) delete方法删除某个键,返回true。如果删除失败,返回false。
clear() clear方法清除所有成员,没有返回值。

Map遍历方法

keys():返回键名的遍历器。
values():返回键值的遍历器。
entries():返回所有成员的遍历器。
forEach():遍历 Map 的所有成员。
Buy me a 肥仔水!