2017-06-24 更新 北京连续三天下雨啦

乘性操作符

  1.ECMA中定义了三种操作符,乘法 除法 和求模 并与其他语言相应操作符相同,再计算之前如果不是数值,会先去调用number()方法转换,空字符转换为0 true转换为1

2.凡是与NaN计算的结果都为NaN,计算结果超过数值范围会显示Infinity或者-infinity 无穷数与0相乘结果为NaN 非0相乘结果为 正无穷或者是负无穷

3.NaN属于特殊数值alert(NaN==NaN)//false ECMA还特意定义了一个函数来判断,isNaN 函数 注意:这个函数返回true或者是false 但是进入函数得数值都会先被调用valueof()方法判断是否可以转换为NaN然后返回 true或者false

4.数值转换(Number()方法为例)

① 按照惯例,如果是Boolean 类型转换为 1 或者 0 ,数字只是简单得返回并无转换

② 若是Null值 则返回 0 ,而undefined 返回NaN

③ 若是字符串则有以下几种 :1. 字符串数字返回 数字类型 但是会忽略前导0 比如 011 转换为11 ,小数会返回有效得浮点格式 如1.1等同样忽略前导0  2.如果字符串包含有效16进制格式 则返回大小相同得十进制数值 如果是空字符 则返回 0 如果字符串除上述格式之外则返回NaN ,也就是说纯字符串且非数字字符串会返回NaN

④ 如果是对象 则调用valueOf() 方法然后按照上面规则返回数值, 如果转换结果是NaN 则调用tostring方法 按照前面规则再次返回

5.parseInt()按照上述规则总体相同但是也有部分区别 例如转换“123blue” 结果会是123 ,而空字符返回结果会是NaN “0xf”会被转换为16进制数值15 ,这里有个坑需要点名一下例如“070”在ECMA3规则中呗转换成 56 而在ECMA5得时候这个BUG被修复 为十进制 70 (实际上这个并非BUG)而是在ECMA5得时候parseInt方法被扩展 可以接收两个参数除了必须参数之外还包含了可选得进制数值 如 :parseInt(“AF”,16)//175 如果不写转换进制 则返回NaN

6.parseFloat()秉承parseInt函数特性,当遇到整数时返回整数遇到多位小数点例如 22.22.34 会找到第一个小数点忽略后面数值返回22.22 当然遇到前导0得时候一样会忽略前导0

7.String 类型标识由0或者多个Unicode组成得字符序列 该字符串可以由双引号与单引号表示,双引号与单引号并不明显区别!但是一定要成对出现,有关字符串转义序列这里就不多说啦,详情见 33页,这里需要说明一下字符串得特点,当字符串声明之后再次进行操作得时候原字符串就会被销毁,例如 var s=“222”; s+=s+“t”;这里得s已经被重新填充而并非在原有基础伤修改,这里不同于C#中字符串定义,哪里定义变量后该变量指向堆中得值而实际上 变量中只存了该数值在堆中得索引并非实际值,原有变量被操作之后该变量指向另外得索引而原值并未改变,当然这里会牵扯到回收机制,稍后介绍。

8. toString() 该方法几乎每个值都有这个方法,除了null 和 undefined,该方法介于值如果有这个方法就调用该值得tostring方法如果没有就返回相应结果,例如结果为null 则返回“null”

9.object 类型 在ECMA中这种类型属于数据与功能得集合,可以使用new操作符来创建新对象类型 ,object类型时所有它实例得基础 换句话说object类型所具有得任何属性方法页同样存在与他的每一个具体对象中,下面是几种基础得属性和方法:

① constructor 保存用于创建对象得函数

② hasOwnProperty(propertyName)用于检查给定属性在当前对象实例中是否存在,注意这里说得是否存在并不是实例原型中,例如 s.hasOwnProperty("name") ,指的是变量s中是否存在name属性,注意这里指的是属性!

③ isPrototypeOf(object) 用于检查传入对象是否是当前对象得原型

④ propertyIsEnumerable(propertyName)用于检查给定得属性是否能使用for-in语句来枚举,与hasOwnporperty()方法一样参数属性名必须是字符串

⑤ tolocalestring() 返回字符串与执行环境地区相对应,稍后会有详细介绍

⑥ tostring() 这个就不多说啦。

⑦ valueof() 返回对象得字符串,布尔或数值表示,一般与tostring()返回结果相同

在这里我是这样理解object类型得 他就像是地心引力一样得存在,他是所有对象得基础是他让一切成为了可能,所以所有对象都具有这些基本属性和方法

JavaScript高级程序编程(三)的更多相关文章

  1. JavaScript高级程序编程(一)

    第一章 JavaScript简史  20170510 JavaScript 组成部分: 核心(ECMAScript)  文档对象模型(DOM)浏览器对象模型(BOM) Netscape Navigat ...

  2. JavaScript高级程序编程(二)

    JavaScript 基本概念 1.区分大小写,变量名test与Test 是两个不同的变量,且函数命名不能使用关键字/保留字, 变量命名规范: 开头字符必须是字母,下划线,或者美元符号,ECMAScr ...

  3. JavaScript高级程序编程(四)

    2017.7.12  北京 数伏第一天 本日总结: 1.线上服务器时常显示.woff文件丢失解决办法 (IIS服务器) 添加MIME类型 添加三条: 文件扩展名      MIME类型 .svg    ...

  4. JavaScript高级程序设计第三版.CHM【带实例】

    从驱动全球商业.贸易及管理领域不计其数的复杂应用程序的角度来看,说 JavaScript 已经成为当今世界上最流行的编程语言一点儿都不为过. JavaScript 是一种非常松散的面向对象语言,也是 ...

  5. javascript高级程序设计第三版书摘

    在HTML 中使用JavaScript <script>元素 在使用<script>元素嵌入 JavaScript 代码时,只须为<script>指定 type 属 ...

  6. JavaScript高级程序设计学习(三)之变量、作用域和内存问题

    这次讲的主要是变量,作用域和内存问题. 任何一门编程语言,都涉及这三个. 变量,比如全局变量,局部变量等,作用域,也分全局作用域和方法作用域,内存问题,在java中就涉及到一个垃圾回收的问题,由于ja ...

  7. 22.1 高级函数【JavaScript高级程序设计第三版】

    函数是JavaScript 中最有趣的部分之一.它们本质上是十分简单和过程化的,但也可以是非常复杂和动态的.一些额外的功能可以通过使用闭包来实现.此外,由于所有的函数都是对象,所以使用函数指针非常简单 ...

  8. JavaScript高级程序开发3笔记

      Js对象 注意:js基本数据类型不是对象,但是"abc".match()这种,可以调用对象的方法,是因为调用方法是临时产生了一个wrapper的包装对象,this指向它: Js ...

  9. JavaScript高级程序设计 第三章 基本概念

    ch3 基本概念 标签(空格分隔): JavaScript 语法 标识符 - 第一个字符必须是字母.下划线或美元 - 驼峰大小写格式 严格模式 ECMAScript5引入,定义了一种解析和执行模型.此 ...

随机推荐

  1. 转:使用Goproxy解决golang.org模块无法下载的问题

    原文https://studygolang.com/articles/22277?fr=sidebar 简介 Goproxy 中国完全实现了 Go 的模块代理协议.并且它是一个由中国备受信赖的云服务提 ...

  2. oracle查询包含在子表中的主表数据

    Oracle数据库,查询某表中包含在子表中的数据,子表中数据按特定条件来源于该父表,SQL命令如 ) a_table父表,b_table子表,a和b表都有commandId列,a表的commandId ...

  3. 入门wpf—— 3、样式

    转载于:https://www.cnblogs.com/huangxincheng/category/388852.html 这个楼主写的很详解,也比较基础,刚学wpf的朋友看看很有帮助. 说起样式, ...

  4. win10下jupyter修改默认路径的办法

    查了很多资料,发现都不管用,最后亲测找到一种方法. 实现的方法就是修改快捷方式标签的目标栏,如下图: 后面有一个%USERPROFILE% 将%USERPROFILE%改成你要的路径就可以了 然后应用 ...

  5. Springboot html vue.js 前后分离 跨域 Activiti6 工作流 集成代码生成器 shiro 权限

    官网:www.fhadmin.org 特别注意: Springboot 工作流  前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0 ...

  6. (转) Python3—UnicodeEncodeError 'ascii' codec can't encode characters in position 0-1

    (转)python(三):Python3-UnicodeEncodeError 'ascii' codec can't encode characters in position 0-1 python ...

  7. pandas-13 时间序列操作方法pd.date_range()

    pandas-13 时间序列操作方法pd.date_range() 在pandas中拥有强大的时间序列操作方法. 使用 pd.date_range() 生成 'pandas.core.indexes. ...

  8. 【转载】使用宝塔对Linux系统进行界面化管理操作

    腾讯云服务器和阿里云服务器的Centos系统都是没有Linux系统的一个版本,Centos系统的操作都是在没有类似Windows图形化操作界面的黑框框命令窗口进行操作的,需要使用到很多Linux操作命 ...

  9. 【转载】C#中float.TryParse方法和float.Parse方法的异同之处

    在C#编程过程中,float.TryParse方法和float.Parse方法都可以将字符串string转换为单精度浮点类型float,但两者还是有区别,最重要的区别在于float.TryParse方 ...

  10. Keystore Problem: Cannot convert COMBINED of type class java.lang.String to class org.jivesoftware.openfire.spi.ConnectionType

    go to: Server Manager -> System Properties Search for "xmpp.socket.ssl.client.keypass" ...