javascript 高级程序设计 四
新的一天开始,让我们伴随者轻快的心情,开始今天的笔记
1、操作符:
(1): *、/、-在ECMAScript中操作的时候,如果遇到有一个操作值不是数值型(Number),那么就会在后台调用number()方法,将其转化成Number
(2): +和上面的三个操作符是不一样的,只要其中一个操作值不是Number,那么就会在后台调用toString()或valueOf(),得到String类型,总的来说:
就是只要一个操作值不是Number那么,就会默认调用所有操作值的toString()或valueOf()方法来进行字符串的拼接。除非由():
alert('String'+4+5);//Stirng45
alert('String'+(4+5));//String9
(3):==和===的区别:
==在ECMAScript是比较'不严谨'的:废话不都说了直接上表格,写例子
| 表达式 | 值 |
| null==undefined | true |
| NaN==NaN | false |
| '5'==5 | true |
| false==0 | true |
| true==1 | true |
| true==2 | false |
| undefined==0 | false |
| null==0 | false |
| NaN!=NaN | true |
所以在项目中我们一律使用全等(===)和不全等(!==),在这种情况下比较的两个操作数就会进行额外的转化。
例如::'5' === 5;//false
(4):switch()语句:
在ECMAScript中switch是自我鉴定语句,和其他语言有所不同,1:可以在switch中使用任何数据类型,2:每一个case不一定是常量
var Str = 'String';
switch(true){
case: Str < 'string':
alert('xiaoyu');
break;
case: Str > 'string'
alert('dayu');
break;
default :
alert('String');
}
(5)、function()的参数:
在ECMAScript中方法的参数虽然可以在方法声明上写入几个参数,但是在调用的时候,我们可以不一定非得传入相同的参数个数的
参数,这是因为在ECMAScript中,参数其实都是在方法内部以类似数组的格式储存者,并且每个方法内部都会维护者一个arguments这么一个对
象,因为他类似与数组,所以可以用arguments[0]来代指第一个参数。虽然arguments这个对象储存在计算机中的空间和传入的参数的储存空间
不是同一个,但是他们却是联动的(但方向的联动,也就是命名参数不会改变arguments中对应的值,另外值传入一个参数,那么arguments[1]设
置的值不会反应到命名参数中),就是arguments中的值永远与对应参数的值保持同步。
function doAdd(num1,num2){
if(arguments.length === 1){
arguments[0]+=10;
alert(num1);
}else(arguments.length === 2){
arguments[1]+=10;
alert(arguments[0] + num2);
}
}
并且在ECMAScript中没有重载,如果有了两个相同名字的函数,则改名字只属于后定义的函数。
javascript 高级程序设计 四的更多相关文章
- JavaScript高级程序设计(四): 关键字With的使用
一.关键字with 1.含义 with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性.要给对象创建新的属性,必须明确地引用该对象. 简单的说,with为一个或一 ...
- JavaScript高级程序设计学习(四)之引用类型
在javascript中也是有引用类型的,java同样如此. javascript常见也比较常用的引用类型就熟Object和Array. 一个对象和一个数组,这个在前后端分离开发中也用的最多.比如aj ...
- 《Javascript高级程序设计》阅读记录(四):第五章 下
这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释上我的一些想法.做这个一方面是提升了我的阅读效果以及方便我以后阅 ...
- 《Javascript高级程序设计》阅读记录(二):第四章
这个系列之前文字地址:http://www.cnblogs.com/qixinbo/p/6984374.html 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较 ...
- 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介
前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...
- 《JavaScript高级程序设计》学习笔记(5)——面向对象编程
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第六章内容. 1.面向对象(Object ...
- 《JavaScript高级程序设计》学习笔记(4)——引用类型
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第五章内容. 在ECMAScript中, ...
- 《JavaScript高级程序设计》学习笔记(3)——变量、作用域和内存问题
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第四章内容. 1.函数:通过函数可以封装 ...
- 《JavaScript高级程序设计》学习笔记12篇
写在前面: 这12篇博文不是给人看的,而是用来查的,忘记了什么基础知识,点开页面Ctrl + F关键字就好了 P.S.如果在对应分类里没有找到,麻烦告诉我,以便尽快添上.当然,我也会时不时地添点遗漏的 ...
随机推荐
- tensorflow serving 中 No module named tensorflow_serving.apis,找不到predict_pb2问题
最近在学习tensorflow serving,但是运行官网例子,不使用bazel时,发现运行mnist_client.py的时候出错, 在api文件中也没找到predict_pb2,因此,后面在网上 ...
- 删除kafka topic
1.因为项目原因,kakfa通道中经常造成数据阻塞,导致kafka通道中数据量过大,因此我需要将kakfa通道中数据清除(个人项目原因,一直使用一个消费者,只要保证当前消费者不在消费之前很久的数据就可 ...
- 12.13java过关测试
库存物资管理系统: 1.首先建两个数据表,一个pass用于商品的增删改查,一个passd记录商品的出库与入库信息: 2.建两个实体类,用来传递商品与单据的信息 3.在添加与删除时,填写入库或者出库单据 ...
- openssl数字证书常见格式 协议
证书主要的文件类型和协议有: PEM.DER.PFX.JKS.KDB.CER.KEY.CSR.CRT.CRL .OCSP.SCEP等. PEM – Openssl使用 PEM(Privacy Enha ...
- 自定义sql server 聚合涵数
using System; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using Micr ...
- Java基础学习笔记(三)
18.2.1无参无返回值的方法 18.2.1.1定义方法的语法格式 public static void 方法名称(){ 方法体 } 方法调用 类名.方法名称(); 注意:在Java中,同一个类中的方 ...
- python全栈开发 随笔 'is' 和 == 的比较知识与区别 编码和解码的内容及转换
python 一. is 和 == 的区别; == 比较的是两边的值. a = 'alex' b = 'alex' print(a = b) #True a = 10 b = 10 print(a = ...
- 四、Factory Method 工厂方法模式
需求:对象的创建由工厂统一创建,会使用到模板模式 代码清单: 工厂: public abstract class Factory { public abstract Product createPro ...
- e-olymp Problem8352 Taxi
作为我在这个OJ玩了一下午的终结吧. 水题一道,阅读理解OJ. 传送门:点我 Taxi At the peak hour, three taxi buses drove up at the same ...
- 203. Remove Linked List Elements (List)
Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 --& ...