精华内容
下载资源
问答
  • js的delete和void关键字

    2018-09-19 10:49:00
    delete关键字的作用: 删除对象的属性 语法:delete 对象.属性 可以删除没有使用var关键字声明的全局变量(直接定义在window上面的属性) delete关键字的使用注意: 返回值类型为布尔值(true / false...

     delete关键字

     
    • delete关键字的作用:
      • 删除对象的属性 语法:delete 对象.属性
      • 可以删除没有使用var关键字声明的全局变量(直接定义在window上面的属性)
    • delete关键字的使用注意:

      • 返回值类型为布尔值(true / false),删除成功返回true
      • 删除对象中不存在的属性,返回值是true
      • 删除对象的原型对象中的属性(不能删除),返回值是true
      • 无法删除使用var声明的全局的变量,但是却可以删除直接定义在window上面的属性
    • 示例:

       
    复制代码
     1 <script>
     2   var dog = {
     3       name:"招财",
     4       age:14
     5   }
     6   //删除对象的属性
     7   console.log(delete dog.name);  //true
     8   console.log(dog.name);         //undefined
     9 ​
    10   // 删除对象中不存在的属性
    11   console.log(delete dog.eat);  //true
    12 ​
    13   // 删除对象的原型对象中的属性
    14   Object.prototype.play =  "玩";
    15   console.log(delete Object.prototype.play );  //true
    16 ​
    17   //没有使用var关键字声明的变量,那么该变量默认会成为一个全局的变量(变成window的属性)
    18   b = "testb";
    19   console.log(b); // testb
    20 ​
    21   function func() {
    22       var num1 = 10;
    23       num2 = 20;
    24   }
    25 ​
    26   func();
    27   //console.log(num1);  // 报错 无法在函数体外部访问局部变量
    28   console.log(num2);    //20   num2 变成了window的属性
    29 ​
    30   //使用delete删除直接定义在window上面的属性
    31   console.log(delete num2);   // true
    32   //console.log(num2);        // 报错
    33 ​
    34   var a = "testa";
    35   delete a; // 无法删除
    36   console.log(a);   // testa
    37 ​
    38  </script>
    复制代码

     

    void关键字

    超级链接的形式:<a href="javascript:void(0)">超级链接的文字</a>
    其中,javascript:void(0)指的是该操作符指定要计算一个表达式但是不返回值。

    具体事例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript">
    //新出现的type类型,不写也没有什么应用
    <!--
    //-->
    </script>
    </head>
    <body>

    <p>点击以下链接查看结果:</p>
    <a href="javascript:void(0)">点我!</a>

    </body>
    </html> 
    加上具体事件

    <a href="javascript:void(alert('Warning!!!'))">点我!</a>
    1
    加入了变量

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript">
    function getValue(){
    var a,b,c;
    a = void ( b = 5, c = 7 );
    document.write('a = ' + a + ' b = ' + b +' c = ' + c );
    }
    </script>
    </head>
    <body>

    <p>点击以下按钮查看结果:</p>
    <form>
    <input type="button" value="点我" οnclick="getValue();" />
    </form>

    </body>
    </html>


    结果:

    a = undefined b = 5 c = 7

     

    转载于:https://www.cnblogs.com/YuyuanNo1/p/9673303.html

    展开全文
  • Js中的delete关键字

    2019-08-27 17:14:27
    delete关键字的作用: 删除对象的属性 语法:delete 对象.属性 返回值类型为布尔值(true / false),删除成功返回true delete关键字的使用注意: 也可以用于删除数组元素 删除未使用var/let/const关键字声明的...

    delete关键字的作用:

    • 删除对象的属性 语法:delete 对象.属性
    • 返回值类型为布尔值(true / false),删除成功返回true

    delete关键字的使用注意:

    • 也可以用于删除数组元素
    • 删除未使用var/let/const关键字声明的全局变量(直接定义在window上面的属性)
    • var、let、const创建的属性不能被delete操作删除。
    • 删除对象中不存在的属性或数组不存在的元素,返回值是true
    • delete操作只会在自身的属性上起作用,删除对象的原型对象中的属性(不能删除),返回值是true
    • 删除对象不可配置属性,非严格模式返回 false,严格模式下直接报错

    使用:

    a = 1
    delete a    // true
    
    
    var b = 1
    delete b    // false,这里使用let、const声明同样无法删除
    
    
    var obj = {
        name: 'zh',
        age: 23
    }
    delete obj.age    // true
    delete obj.weight    // true,删除不存在的属性返回true
    
    
    var arr = ['Mary', 'Bob', 'Lisa']
    delete arr[1]    // true,这里删除了数组元素,但是数组长度不变,只是置空了index为1的元素
    delete arr[5]    // true
    
    
    var obj = {}
    Object.defineProperty(obj, 'a', {
      value: 1,
      configurable: false
    })
    delete obj.a // false
    // 严格模式下直接报错,Uncaught TypeError...
    
    
    function Person() {
        this.age = 18;
    }
    Person.prototype.name = "Bob";
    var p1 = new Person();
      
    delete p1.name;    // true,但是此属性是原型对象上的,并未删掉,只能删掉对象自身属性
    delete Person.prototype.name    // true,删掉了原型对象上的name属性

     

    展开全文
  • package关键字的概述及作用

    千次阅读 2018-07-30 23:22:59
    1.包的作用:  *将字节码文件(.class)分类存放  *包其实就是文件夹 2.划分方式:  *按照功能划分  com.java.delete  com.java.add  *按照模块划分  com.java.teacher  com.java.student 3.包的格式  *...

    package关键字的概述及作用
    1.包的作用:
      *将字节码文件(.class)分类存放
      *包其实就是文件夹
    2.划分方式:
      *按照功能划分
        com.java.delete
        com.java.add
      *按照模块划分
        com.java.teacher
        com.java.student
    3.包的格式
      *package 包名
      *(域名倒过来写)
      *可以是多级包,也可以是单级包,中间用“.”分隔开,“.”相当于路径分隔符
    4.package之注意事项
      * package语句必须是程序的第一条可执行的代码
      * package语句在一个java文件中只能有一个
      * 如果没有package,默认表示无包名
    5.不同包下类之间的访问
      如果类不是public的,则在不同包中的其它类无法访问它

    展开全文
  • (一)C语言malloc函数 (二)C++new关键字 (三)new和malloc区别 二、free/delete释放...(二)C++的delete关键字 三、namespace名字空间作用域 (一)引入原因 (二)如何访问 (三)同名名字作用关系

    一、malloc/new 申请内存

    (一)C语言的malloc函数

    C语言用malloc函数开辟内存,函数原型和使用如下:

    void* malloc(size_t size);
    int *p=(int*)malloc(sizeof(int)*4);//开辟4块int类型的内存
    

    通过原型,我们可以看到malloc只管开辟内存,并不知道存放什么类型,返回void*类型,故需要强转。从使用我们可以分析 malloc的特点:

    • 返回值类型不安全,void*是一个半开半闭的区间,由越界问题。
    • malloc申请的内存大小由使用者控制,会出现空间浪费或不足的情况
    • 单纯的开辟内存,不能初始化
    • 当内存不足时,开辟内存存在开辟失败的情况,开辟失败,返回一个空指针NULL,所以需要自己进行判断处理。

    【1. C动态开辟3行4列的二维数组】

    二维数组指针为二级指针,所以先开辟存放int*的数组,然后循环开辟int*的空间:

    int **p=(int**)malloc(sizeof(int*)*3);//指向二维空间
    for(int i=0;i<4;i++)//循环开辟
    {
    	p[i]=(int*)malloc(sizeof(int)*4));
    }
    

    【2. C可以开辟常量内存单元吗?】

    不可以,常量就需要用到const关键字,看下图分析:

    p占4个字节,堆上开辟4个字节,那么一共8个字节,这时开辟的堆内存是通过malloc开辟的,只是一个普通的内存单元而已,并不是常量内存单元。所以不是,故不能开辟常量内存单元,没有必要用const修饰。

    (二)C++的new关键字

    C++用new关键字创建内存,我们来看一下 它的用法

    1. 开辟内存:没有类型强制转换,也不需要传入大小,开辟多少是由系统根据类型控制的,所以不会出现空间浪费等情况。

      int *p=new int;
      
    2. 可以对数组初始化:用()

      int *p=new int(20);p的数值为20。
      
    3. 开辟数组:new 类型[SIZE]

      int *p = new int[10];//表示开辟10个int大小的数组。
      
    4. 数组只支持0初始化,用()表示

      int *p=new int[10]();都初始化为0
      
    5. 开辟二维数组,和C开辟二维数组思路一样

      int **cp=new int*[3]();
      for(int i=0;i<3;i++)
      {
         cp[i]=new int[4]();
      }
      
    6. 不存在内存开辟失败,因为当内存不足时,系统会抛出一个异常,程序中断

    7. 可以开辟常量内存单元,这时指向这一块的内存也是const的,避免修改风险。

      const int* cpp = new const int(10);
      delete cpp;
      
    8. 重定位new即replacement_new,举个例子:

      在这里插入图片描述

      含义就是从a这块地址中选择一个char的大小的内存存放字符a,这就是重定位new所以new不仅仅可以开辟堆上的内存,也可以在栈上已开辟的栈内存上使用栈内存。

    所以我们 说new开辟的内存我们称为自由存储区域,即new开辟在哪个单元,我们就把这个单元称为自由存储区。

    (三)new和malloc的区别

    1. new关键字malloc函数
    2. new返回值类型安全malloc返回值类型不安全
    3. new不仅可以开辟内存还可以初始化malloc只能开辟内存
    4. new不需要计算开辟内存大小,系统开辟malloc由使用者计算
    5. new开辟失败,抛出异常malloc开辟失败,返回NULL
    6. new开辟的内存称为自由存储区malloc开辟内存在堆上
    7. new开辟数组:new[] [SIZE]malloc为malloc(总字节)

    无论是malloc,还是new开辟内存,开辟的内存都不能直接操作,而是需要通过指针方式指向,进行间接操作,这是为啥?

    int* p = new int;//为什么不直接操作堆内存,而是通过p指向操作
    

    因为直接操作必须要有一个变量名,根据变量名来操作这块内存,但是堆内存没有变量名,所以要想对堆内存操作,必须要将堆内存的所有权交给栈上一个有变量名的指针来管理。


    二、free/delete释放内存

    (一)C语言的free函数

    C中用free释放开辟的空间,原型为:

    void free(void* ptr);
    

    释放时,动态释放,循环释放一维,再释放二维:

    for(int i=0;i<3;i++)
    {
    	free(p[i]);//释放一维
    }
    

    (二)C++的delete关键字

    C++用delete,使用时,delete 指针即可释放,如

    delete p;//释放p
    delete p[];//释放p指向的数组
    

    释放动态二维数组:

    for(int i=0;i<3;i++)
    {
    	delete[] cp[i];
    }
    delete[] cp;
    

    三、namespace名字空间作用域

    (一)引入的原因

    C语言中的作用域:

    • 局部作用域
    • 全局作用域

    C语言只有两个作用域,就会出现很多问题:假如A,B,C三个写排序函数Sort,函数默认在全局作用域。当最后要整合的时候,会产生命名冲突,因为名字一样,这时候无论你删除哪个都会导致整个程序崩溃。这个时候C语言的两个作用域就不够了。

    为了解决这种问题,C++引入了其他两个作用域,那么C++就有四个作用域:

    1. 名字空间作用域: 可以有多个自定义的名字空间作用域。A,B,C将各自写的sort函数放在自己的名字空间作用域下,使用时各自使用自己作用域下的函数,那么整合时,因为不在同一个作用域,就不会产生命名冲突。
    2. 类作用域: 一个类一个作用域。
    3. 局部作用域。
    4. 全局作用域。

    (二)如何访问

    1. 通过【::】作用域来调用对应作用域的函数

      int  a = G0716::Sum(10,20);
      

      表示访问G0716作用域中的Sum函数。

    2. 通过using声明访问

      using G0716::Sum;
      

      表示把using之后作用域G0716中的符号暴露在当前using声明所在的作用域,即把Sum函数暴露在main函数的全部作用域,那么就可以调用成功。

      using声明每次只可以声明一个符号,如果要声明两个,那么需要写两次。

    3. using namespace 作用域,称为using指示符把指示符之后的名字空间作用域中的所有符号暴露在当前指示符所在的作用域下。

      using namespace G0716;
      

      表示G0716名字空间作用域指示符,表示把G0716作用域中的所有符号,函数都暴露在当前作用域下,即全局作用域,这样在这个文件的任意位置可以访问到G0716中的任意符号,函数。

      那么using namespace std,std为C++的标准作用域,这句的含义就是将std作用域下的函数,符号都暴露在当前文件的全局作用域中,这样在这整个文件的任意位置可以访问到std中的任意符号,函数。

    我们回到最开始的问题,如果A,B,C都使用using namespace A/B/C;都将所有的文件暴露在当前全局作用域,那么还是会产生命名冲突,就是为了解决命名冲突才发明的名字空间作用域,你如果再使用这样的访问方式去访问,就和没解决问题一样,将这个状况称为 名字空间作用域污染

    所以我们一般不使用这种办法访问作用域中的符号,函数,一般使用::作用域来访问,如std::cout

    (三)同名名字作用域的关系

    如果出现了两个G0716作用域,那么怎么处理,系统会将同名名字作用域合并,如果作用域中有重名变量,运行会报错,报重定义的错误因为将作用域合并了。

    加油哦!🍝。

    展开全文
  • js----delete关键字

    2019-02-22 21:47:00
    delete关键字的作用: 1.删除对象的属性 语法:delete 对象.属性 2.可以删除没有使用var关键字声明的全局变量(直接定义在window上面的属性)3.删除数组元素4.不能删除内置对象的属性5.不能直接删除从原型上...
  • 主键、外键和索引区别?主键外键索引定义:唯一标识一条记录,不能有重复,不...唯一索引(由关键字UNIQUE定义索引),不可重复,但可以有一个空值作用:用来保证数据完整性用来和其他表建立联系用是提高查...
  • 2、子类在delete时,会先执行本身析构函数再执行基类析构函数。 3、在基类member function上加virtual关键字就是为了基类指针在指向派生类对象时,实际去调用派生类对应member function(即多态)。
  • B:作用 a:把相同类名放到不同包中 b:对类进行分类管理 举例: 学生:增加、删除、修改、查询 老师:增加、删除、修改、查询 ... 方案1:按照功能分 cn.itcast.add AddStudent ...
  • 刚学习perl脚本的时候,喜欢频繁使用defined关键字判断一个hash中某个key是否存在,后来程序出了问题才去perl官方文档查看关于defined关键字...了解了undef这个变量,那么就可以来看defined变量的作用了。当defined子程
  • B:作用 a:把相同类名放到不同包中 b:对类进行分类管理 举例: 学生:增加,删除,修改,查询 老师:增加,删除,修改,查询 ... 方案1:按照功能分 cn.itcast.add AddStudent AddTeacher ...
  • delete是一个一元操作符,它用来删除对象属性或者数组元素....但是delete也有副作用,它是用来删除操作,不是返回一个值. 对于对象来说,看例子 varo={x:1,y:2}; console.log('x'ino);//true co...
  • 数据库增删改关键字

    千次阅读 2019-03-17 08:45:32
    数据库增删改关键字 作用于表: create 增表 drop 删表 alter 更新表 作用于表里字段: insert 增字段 delete 删字段 update 更新字段 ...
  • python中关键字del、assert、pass的作用

    千次阅读 2017-08-28 09:03:34
    一、del用法python中del用法比较...pythondel不同于Cfree和C++的delete。 由于python都是引用,而python有GC机制,所以,del语句作用在变量上,而不是数据对象上。if __name__=='__main__': a=1 # 对象 1 被
  • JS中的关键字

    2019-12-24 15:09:26
    delete 删除对象属性,对方法不起作用,删除不了变量,可以将变量=null释放(注意:delete不能删除原型链中属性和变量) call和apply区别:传参数不一样 arugments.callee :代表函数对象本身 arugments....
  • 之前对oracle的exits关键字的作用存在误区,先写此文记录一下:  见sql:  delete from a where exists (select null from b where b.id1=a.id1 and b.id2=a.id2)  这里是满足 a.id1=b.id1 and a.id2=b.id2的...
  • ①来源:名字冲突就是在同一个作用域中有两个或多个同名实体,为了解决命名冲突C++中引入了命名空间 ②定义:命名空间又称为名字空间,是程序员命名内存区域,程序员根据需要指定一些有名字空间域,把一些全局...
  • js高程:闭包是有权访问另一个函数作用域中变量函数,常见方式就是在一个函数内部 再创建一个函数。我理解是能够读取其他函数内部变量函数。 二:闭包用途? 1.防止过多全局变量,改成局部变量来...
  • Java中finalize关键字的使用

    千次阅读 2016-05-06 16:11:37
    1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的...
  • C++ 关键字 static 详解

    2018-10-26 19:49:28
    首先我们要对static特性和作用进行总结 1.存储位置:经过static修饰变量,在内存中存储在“全局(静态)区”。 我们可以扩展一下,程序在内存中究竟有多少存储区域,每个存储区域都是用来干嘛。 堆区:是由...
  • SQL - WHEREMySQL WHERE 子句的作用是有条件地从表中选取数据,常见于SELECT语句中,另外也可用于DELETE或UPDATE命令。WHERE在SELECT语句中假设表中有如下数据:1mysql> select * from `orders-detail`;2+3| ...
  • 1.1. JavaScript关键字是语言保留一些有特殊作用的词语, 共语言本身使用。因此关键字不能被用作变量名或函数名。 1.2. JavaScript关键字的完整列表如下: break case catch continue default delete do else ...
  • <p>I recently started to build a ...'{view} {delete}', ), ), )); </code></pre> <p>I really do not know what do do anymore since I'm terribly lost, any help will be hihsly appreciated </div>
  • 原文链接地址【MySQL优化】--看懂explain_数据库_贾文静-CSDN博客​blog.csdn.netexplain explain模拟优化器执行SQL语句,在5.6以及以后版本中,除过select,其他比如insert,update和delete均可以使用explain查看...
  • 根据规定,关键字是保留,不能用作变量名或函数名。 下面是一些ECMAScript关键字的完整列表。 break ,case,catch,continue,default,delete,do,else,finally. for,function,if,iInstanceof,new,return,switch...
  • 【单选题】以下删除表中数据的正确语句是 ( ):【单选题】delete from employee 语句的作用是 ( )【单选题】以下删除记录正确的 ( )【单选题】建表语句中的 not null ,该代码表示的含义是:【单选题...
  • 关键字作用: 用于表示控制语句开始或结束 用于执行特定操作 以下就是ECMAScript全部关键字(带*号上标是第5版新增的关键字): break do instanceof typeof case else new var catch finally ...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 368
精华内容 147
关键字:

关键字delete的作用