• 将对象的所有属性名放到一个数组中 || 获得对象的所有属性名 || return;不具有原子性 || 怎样自己制作异常|| 判断对象有没有某个属性 || 当传递的参数比需要的参数少的时候,没有的值会被赋予undefined || 获得函数实际传递的参数 || 怎么用函数处理一个对象 || 用一个名字空间定义一个模块所有的函数 || 给一个对象添加方法


    获得对象的所有属性名 || 将对象o的所有属性名放到数组中

    var o = {x:1,y:2,z:3};
    var arr = [];
    var i = 0;
    for(arr[i++] in o){};//是空的循环体
    console.log(arr);
    
    ["x", "y", "z"]

    在js中遇到return;可以看到运行到return;函数到这就停止了,循环也停止了,只是return;后面的不执行了,在这之前打印的还在,也就是说函数和循环中的return;没有原子性的,不会回滚像没打印一样。

    function a(x){
    for(var i = 0;i<x;i++){
    console.log(i+':'+i);
    if(i == 5){return;}
    console.log('after return');
    }
    }; a(8);
    0:0
    after return
    1:1
    after return
    2:2
    after return
    3:3
    after return
    4:4
    after return
    5:5

    怎样自定义异常 || 怎样抛出自己的异常 || 怎样自己制作异常

    function fa(x){
    if(x<0){throw new Error(x+'小于0');}//抛出异常时,后面的代码就不再执行了
    console.log(x);
    } fa(-1);
    
    Uncaught Error: -1小于0(…)

    关于try catch只要执行了try里代码的一部分,无论try代码块执行了多少,finally从句都会被执行

    判断对象有没有某个属性

    if(o.x !== undefined){
    
    这是o有x属性的情况
    
    
    }else{
    
    这是o没有x属性的情况
    
    
    }

    函数的传递的参数多于需要的参数时,多余的会被忽略;当传递的参数比需要的参数少的时候,没有的参数会被赋予undefined值。

    arguments是函数实际传递的数组

    function f(x,y,z){
    
    if(arguments.length != 3){
      throw new Error('f的参数不等于3');
    }
    for(var i = 0;i<arguments.length;i++){
      console.log(arguments[i]);
    }
    
    } f('a','b');
    Uncaught Error: f的参数不等于3(…)
    
    
    function f(x,y,z){
    
    if(arguments.length != 3){
      throw new Error('f的参数不等于3');
    }
    for(var i = 0;i<arguments.length;i++){
      console.log(arguments[i]);
    }
    
    } f('a','b','c'); a b c

    用函数处理一个对象

    var o = {"x":"1","y":"2"};
    function f(){
    for(var i in this){
    console.log(i);//i为属性名
    if(i == "x"){this[i]+=3}//this[i]可以获得属性值
    console.log(this[i]);
    
    }
    
    
    } f.call(o);
    
    
    x
    13
    y
    2

    用一个名字空间定义一个模块所有的函数,就是方法

    var Class = {};
    Class.methodA = function(pa){console.log(pa);};
    Class.methodB = function(pb,pc){console.log(pb+pc);};
    Class.methodA('12');
    Class.methodB(3,5);
    12
    8
    //给一个对象添加方法
    var
    Class = {"x":"6","y":"7"}; Class.methodA = function(pa){console.log(pa);}; Class.methodB = function(pb,pc){console.log(pb+pc);}; Class.methodA('12'); Class.methodB(3,5); 128
  • 相关阅读:
    巴科斯范式和sql语言
    mysql 视图
    1503
    mysql SQL_CALC_FOUND_ROWS
    create table xxx as select 与 create table xxx like
    mysql 1030 Got error 28 from storage engine
    python -- 装饰器入门
    12C新特性 -- 共享asm口令文件
    MySQL子查询的优化
    MySQL的explain
  • 原文地址:https://www.cnblogs.com/lonely-buffoon/p/6214121.html
Copyright © 2020-2023  润新知