JavaScript学习笔记-表达式和语句
表达式和语句
eval( ) 只有一个参数
参数非字符串时,直接返回这个参数;
参数为字符串时,它把字符串当成JavaScript代码进行编译,编译失败则抛出语法错误,编译成功则执行代码,并返回最后一条语句的值,若没有值则返回undefined
eval()使用了调用它的变量的作用域环境
它接收的字符串参数,在作为单独的代码时,必须是有语义的,否则编译失败
delete运算符:用来删除对象的自由属性、数组的元素,
删除属性后,属性将不存在,而删除数组元素后,会在数组内留下一个值为undefined的洞,数组长度不变;
尝试删除无法删除的属性返回false,若删除成功或删除操作不起作用时均返回true
delete无法删除:
1、内置核心、客户端属性不能删除;
2、用户通过var语句声明的变量不能删除;
3、通过function语句定义的函数和函数参数也不能删除
4、不可配置的属性无法删除
void运算符:void的操作数会正常执行,但会忽略操作数的值并返回undefined
void有如下作用:
* 通过采用void 0取undefined比采用字面上的undefined更靠谱更安全可靠;
* 填充<a>的href确保点击时不会产生页面跳转; 填充<image>的src,确保不会向服务器发出垃圾请求。href='javascript:void(0);'
不管break语句带不带标签,它的控制权都无法越过函数的边界!即不能从函数内部跳转到函数外部
Object.create( p , [x] )
该方法创建一个以对象p为原型的新对象,并返回该对象,可选的x是用以对对象属性的进一步描述;
var p1 = Object.create(p); //新建对象p1,它继承自对象p(以p为原型)
即p1的prototype(原型)属性的值为p
P.x和P['x']的区别:
P.x访问时,只能固定访问属性名为x的属性;
而P['x']比较灵活,可以动态的修改[ ]内字符串的值,来访问不同的属性,如P['x'+i]
逻辑与“&&”,逻辑或”||“的妙用:短路行为
通过&&,保证了读取length属性之前,book和book.subtitle都为真值,即为对象
var len = book && book.subtitle && book.subtitle.length;
保证x的值为:从a~f中,第一个为真值的值,忽略后面的真值
var x = a || b || c || d || e || f;
if( ! buy){...} 当buy为假值时,执行{...}
通过! ! x来得到一个等价的布尔值
JavaScript学习笔记-表达式和语句的更多相关文章
- Javascript学习笔记-基本概念-语句
1.if语句 if (condition) statement1 else statement2 也可以像下面这样把整个if 语句写在一行代码中: if (condition1) statement1 ...
- JAVAscript学习笔记 js条件语句 第三节 (原创) 参考js使用表 (2017-09-14 15:55)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java程序猿的JavaScript学习笔记(8——jQuery选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(2——复制和继承财产)
计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...
- Java程序猿的JavaScript学习笔记(3——this/call/apply)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(4——关闭/getter/setter)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- Java程序猿的JavaScript学习笔记(1——理念)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- JavaScript:学习笔记(9)——Promise对象
JavaScript:学习笔记(9)——Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...
- JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
JavaScript:学习笔记(7)——VAR.LET.CONST三种变量声明的区别 ES2015(ES6)带来了许多闪亮的新功能,自2017年以来,许多JavaScript开发人员已经熟悉并开始使用 ...
随机推荐
- App乱世,3721离我们有多远
[总结]根据众多网友的评论,看来还是WP比较给力,IOS太贵...会对手机进行优化,安卓还行,如果给中老年人用WP比较好 声明:合理讨论,禁止骂人言论,本人也不是5毛党,发表下个人看法而已. 快过年了 ...
- Angular从0到1:function(上)
1.前言 Angular作为最流行的前端MV*框架,在WEB开发中占据了重要的地位.接下来,我们就一步一步从官方api结合实践过程,来学习一下这个强大的框架吧. Note:每个function描述标题 ...
- 面试准备 - 最大堆的Csharp实现
面试中最常见的问题之一...在N个数中间寻找前K大个元素 最常见的解法就是最大堆 时间复杂度O(N*log(K)) 空间复杂度O(k) 实现了一个最简单的最大堆,每次有元素进来都和堆顶元素比较一下,如 ...
- Linux的学习--使用PuTTY
交代一下背景,在笔记本上装虚拟机,在虚拟机里装了Ubuntu系统,但用着一直感觉很卡.刚好同学有旧的不用的笔记本,就拿来装了一个Ubuntu. 想要从我的笔记本上控制Ubuntu系统,于是就找到了pu ...
- [转载]PhotoShop性能优化
现在随着Photoshop版本越来越高功能也越来越强大,而往往强大的功能需要电脑有好的配置运行,比如HDR.图像合成或者3D和视频等类似的功能,还有处理比较大尺寸的图像时,如果电脑配置不够强往往非常卡 ...
- 理解 angular2 基础概念和结构 ----angular2系列(二)
前言: angular2官方将框架按以下结构划分: Module Component Template Metadata Data Binding Directive Service Dependen ...
- Screenfly – 各种设备的屏幕和分辨率下快速测试网站
Screenfly 让你能够在各种设备的屏幕和分辨率下查看你的网站.输入网址,并点击GO开始浏览网页.Screenfly 可以使用代理服务器来模拟设备,当您查看您的网站,代理服务器模仿您所选择的设备的 ...
- nodejs 生产环境配置
1.node 默认为development(开发)模式 启动node 时可以设置模式为生产模式 set NODE_ENV=production node app.js 2.设置node监听的端口 va ...
- js的日期格式化
function date(){ var date = new Date(); var year = date.getFullYear(); var month = date.getMonth()+1 ...
- Windows Azure HandBook (10) 测试本地网络到微软云的延迟
<Windows Azure Platform 系列文章目录> 之前遇到一些微软云的客户,在使用海外数据中心的时候,需要评估本地网络到微软云网络的延迟. 我们建议部署到微软云上的服务,离最 ...