本文目录一览:
Javascript学习笔记 delete运算符
一、语法
delete后面的表达式必须给出一个属性的引用,比如
var
o
=
{a:1};
delete
o.a;
//此处o.a是对象o的属性a的引用
只有在with语句里才能使用单独的属性名
复制代码
代码如下:
with(o){
delete
a;
}
二、delete的返回值
delete是普通运算符,会返回true或false。规则为:当被delete的对象的属性存在并且不能被删除时
返回false,否则返回true。
这里的一个特点就是,对象属性不存在时也返回true,所以返回值并非完全等同于删除成功与否。
复制代码
代码如下:
var
o
=
{a:1};
delete
o.a;
//返回true
var
b
=
2;
delete
b;//返回false,ECMA规则约定:使用var和function声明的变量不可以被delete
三、哪些情况下不允许delete
上例提到的var和function声明的变量不可以被delete,但隐式声明可以被删除
复制代码
代码如下:
function
c(){return
12;}
delete
c;//返回false
d
=
function(){return
12;}
delete
d;//返回true
不能delete从原型链上继承的属性,但可以删除原型链上的属性
复制代码
代码如下:
function
Foo(){}
Foo.prototype.bar
=
42;
var
foo
=
new
Foo();
delete
foo.bar;
//
返回true,但并没有起作用
alert(foo.bar);
//
alerts
42,
属性是继承的
delete
Foo.prototype.bar;
//
在原型上删除属性bar
alert(foo.bar);
//
alerts
"undefined",
属性已经不存在,无法被继承
四、特例
复制代码
代码如下:
eval执行的代码中如有通过var和function声明的变量,可以被delete
eval("var
a=1");
delete
a;
alert(a);
//报未定义错误
如果声明是在eval执行代码中的闭包内进行的,则变量不能被delete
eval("(function(){var
a=1;delete
a;
return
a;})()");//1
五、delete
数组元素
从数组中delete其元素并不会影响数组的长度
复制代码
代码如下:
var
arr
=
['yuyin','suhuan','baby'];
delete
arr[0];
alert(arr.length);//alert
3
被delete的键值已经不属于数组,但却还是可以被访问,其值为undefined。
复制代码
代码如下:
var
arr
=
['yuyin','suhuan','baby'];
delete
arr[0];
in
arr;
//
false
alert(arr[0]);//undefined
arr[0]
===
undefined;//true
对比直接将键值赋值undefined
复制代码
代码如下:
var
arr
=
['yuyin','suhuan','baby'];
arr[0]
=
undefined;
in
arr;
//
true
alert(arr[0]);//undefined
arr[0]
===
undefined;//true
可以看出delete
操作只是将键值这个属性从数组中删除了,数组本身也是对象,这个情况好理解的。如果需要保留键值,可以用undefined赋值。
JavaScript学习笔记之数组基本操作示例
本文实例讲述了JavaScript学习笔记之数组基本操作。分享给大家供大家参考,具体如下:
一、数组定义
1、定义
vara=[1,2,3]
vara=newArray(1,2,3);
2、长度
返回长度
script
vara=[1,2,3,4,5,6];
alert(a.length);
/script
设置长度
script
vara=[1,2,3,4,5,6];
a.length=2;
alert(a);
/script
二、数组连接
script
vara=[1,2,3];
varb=[4,5,6];
alert(a.concat(b));
alert(b.concat(a));
/script
三、数组排序
sort()函数
默认情况是把数组元素按字符串排序
例子
01
script
vararr=['float','width','alpha','zoom','left'];
arr.sort();
alert(arr);
/script
例子02
vararr=[12,8,99,19,112];
arr.sort();
alert(arr);
例子03
sort()函数的改进
vararr=[12,8,99,19,112];
arr.sort(function(n1,n2){
returnn1-n2;
});
alert(arr);
四、数组连接
1、两个数组间的连接:contact()
script
vara=[1,2,3];
varb=[4,5,6];
alert(a.concat(b));
alert(b.concat(a));
/script
2、数组元素间的连接:join()
script
vararr=[1,2,3,4];
alert(arr.join('--p'));
/script
五、数组元素添加、删除
1、数组尾部的添加、删除
尾部添加:push(value)
例子01
script
vara=[1,2,3];
a.push(4);
alert(a);
/script
尾部删除:pop()
例子02
script
vara=[1,2,3];
a.pop();
alert(a);
/script
2、数组头部的添加、删除
头部添加
unshift(value)
例子01
script
vararr=[1,2,3];
arr.unshift(0)
alert(arr);
/script
头部删除:shift()
例子02
script
vararr=[1,2,3];
arr.shift();
alert(arr);
/script
3、数组------splice()
删除数据
例子01
script
vararr=[1,2,3,4,5,6];
//splice(起点,长度)
arr.splice(2,3);
alert(arr);
/script
插入数据
例子02
script
vararr=[1,2,3,4,5,6];
//插入数据splice(起点,长度,元素)
arr.splice(2,0,'a','b','c');
alert(arr);
/script
替换数据
例子02
script
vararr=[1,2,3,4,5,6];
//替换数据
arr.splice(2,2,'a','b');
alert(arr);
/script
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:测试上述代码运行结果。
更多关于JavaScript相关内容还可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript排序算法总结》、《JavaScript查找算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
您可能感兴趣的文章:js数组与字符串的相互转换方法js删除数组元素、清空数组的简单方法(必看)js数组循环遍历数组内所有元素的方法JS
array
数组详解js数组去重的三种常用方法总结JavaScript从数组中删除指定值元素的方法JS数组的遍历方式for循环与for...in向JavaScript的数组中添加元素的方法小结JS删除数组里的某个元素方法javascript
数组的定义和数组的长度Js数组的操作push,pop,shift,unshift等方法详细介绍
俺是javascript初学者 像高手请教谢谢
% 求余
var a=5;
var b=7;
var c=b%a;//c被赋值b模除于a,这个时候c的值是2(7除以5于2)
++ 自加
var a=5;
a++;//这个时候a自加,那么a的值现在是6
//a++和++a有区别,但是都能让这个变量自加1
-- 自减
//同自加
== 等于【逻辑判断】
//这个式子会返回真值,就是真(true)假(false)
var a=3;
var b=4;
var c=3;
a=b //3不等于4 返回的是 假
a=c //3等于3 返回的是 真
=== 恒等于【逻辑判断】
//这个式子在判断等于的基础上还判断这个变量的类型,初学者可以不掌握,但是要明白不一样
!= 不等于【逻辑判断】
//如果不等于就返回 真 ,等于就返回 假
//和 == 完全相反的返回值
= = 大于 小于 大于等于 小于等于【逻辑判断】
//返回真值。
【逻辑判断】
且(and)
|| 或(or)
//条件判断
表达式1 表达式2
//表达式1和表达式2都是会返回真值的式子
//当且仅当两个表达式均为真的时候,这整个式子返回 真 ,否则返回 假
//全真才真,一假则假
表达式1 || 表达式2
//当且仅当两个表达式均为假的时候,这整个式子返回 假,否则返回 真
//全假才假,一真则真
! 非(not)【逻辑判断】
//非是一个单目,也就是一个参数的条件判断
!表达式
//返回表达式真值的反面。如表达式为真,则返回假;表达式假则返回真。
这些逻辑判断符用在可以用真值的地方如 if 条件句:
if( 真值表达式 ){
//如果为真运行这个大括号里面的
}else{
//如果为假运行这个大括号里面的
}
ps:在js中任何式子都可以做真值判断。0为假,其他任何字符,对象,变量等都为真。