本文目录一览:
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];
alert(arr[0]); // undefined
arr[0] === undefined; // true
对比直接将键值赋值 undefined
:
var arr = ['yuyin', 'suhuan', 'baby'];
arr[0] = undefined;
alert(arr[0]); // undefined
arr[0] === undefined; // true
可以看出 delete
操作只是将键值这个属性从数组中删除了,数组本身也是对象,这个情况好理解的。如果需要保留键值,可以用 undefined
赋值。
俺是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):
||
- 非 (not):
!
表达式1 && 表达式2
// 当且仅当两个表达式均为真的时候,这整个式子返回 真,否则返回 假
// 全真才真,一假则假
表达式1 || 表达式2
// 当且仅当两个表达式均为假的时候,这整个式子返回 假,否则返回 真
// 全假才假,一真则真
!表达式
// 返回表达式真值的反面。如表达式为真,则返回假;表达式假则返回真。
这些逻辑判断符用在可以用真值的地方如 if
条件句:
if (真值表达式) {
// 如果为真运行这个大括号里面的
} else {
// 如果为假运行这个大括号里面的
}
ps:在 JS 中任何式子都可以做真值判断。
0
为假,其他任何字符、对象、变量等都为真。
JavaScript学习笔记之数组基本操作示例
本文实例讲述了 JavaScript 学习笔记之数组基本操作。分享给大家供大家参考,具体如下:
一、数组定义
- 定义
var a = [1, 2, 3];
var a = new Array(1, 2, 3);
- 长度 返回长度:
var a = [1, 2, 3, 4, 5, 6];
alert(a.length);
设置长度:
var a = [1, 2, 3, 4, 5, 6];
a.length = 2;
alert(a);
二、数组连接
var a = [1, 2, 3];
var b = [4, 5, 6];
alert(a.concat(b));
alert(b.concat(a));
三、数组排序
sort()
函数:
默认情况是把数组元素按字符串排序。
例子 01
var arr = ['float', 'width', 'alpha', 'zoom', 'left'];
arr.sort();
alert(arr);
例子 02
var arr = [12, 8, 99, 19, 112];
arr.sort();
alert(arr);
例子 03(改进)
var arr = [12, 8, 99, 19, 112];
arr.sort(function(n1, n2) {
return n1 - n2;
});
alert(arr);
四、数组连接
- 两个数组间的连接:
concat()
var a = [1, 2, 3];
var b = [4, 5, 6];
alert(a.concat(b));
alert(b.concat(a));
- 数组元素间的连接:
join()
var arr = [1, 2, 3, 4];
alert(arr.join('--p'));
五、数组元素添加、删除
- 数组尾部的添加、删除
- 尾部添加:
push(value)
var a = [1, 2, 3];
a.push(4);
alert(a);
- 尾部删除:
pop()
var a = [1, 2, 3];
a.pop();
alert(a);
- 数组头部的添加、删除
- 头部添加:
unshift(value)
var arr = [1, 2, 3];
arr.unshift(0);
alert(arr);
- 头部删除:
shift()
var arr = [1, 2, 3];
arr.shift();
alert(arr);
- 数组:
splice()
- 删除数据
var arr = [1, 2, 3, 4, 5, 6];
arr.splice(2, 3);
alert(arr);
- 插入数据
var arr = [1, 2, 3, 4, 5, 6];
arr.splice(2, 0, 'a', 'b', 'c');
alert(arr);
- 替换数据
var arr = [1, 2, 3, 4, 5, 6];
arr.splice(2, 2, 'a', 'b');
alert(arr);
感兴趣的朋友可以使用 在线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等方法详细介绍