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. mysql存储过程简单例子

    1.之前经常在oracle数据库中使用存储过程,换到mysql后用的不多,但是有时候也用,大致记录一下,基本和oracle的一样. CREATE DEFINER = `root`@`%` PROCED ...

  2. Bean named 'XXX' is expected to be of type [XXX] but was actually of type [com.sun.proxy.$Proxy7

    AOP原理 <aop:aspectj-autoproxy />声明自动为spring容器中那些配置@aspectJ切面的bean创建代理,织入切面. <aop:aspectj-aut ...

  3. VLC架构及流程分析

    0x00 前置信息 VLC是一个非常庞大的工程,我从它的架构及流程入手进行分析,涉及到一些很细的概念先搁置一边,日后详细分析. 0x01 源码结构(Android Java相关的暂未分析) # bui ...

  4. 【故障解决】OGG-00446 错误解决

    [故障解决]OGG-00446 Could not find archived log for sequence 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和 ...

  5. MySQL5.7应当注意的参数

    简介: 本篇文章主要介绍 MySQL 初始化应当注意的参数,对于不同环境间实例迁移,这些参数同样应当注意. 注: 本文介绍的参数都是在配置文件 [mysqld] 部分. server_id 和 log ...

  6. Ubuntu16.04 网络配置

    Ubuntu 网络配置 安装Ubuntu操作系统之后,为了通过Xshell连接主机,或者连接其他主机.需要进行如下网络配置和ssh服务配置. 1 网络配置 1.1 修改网络配置信息 sudo vi / ...

  7. nodejs 删除空文件

    var fs = require("fs") var path = require("path") var listRealPath = path.resolv ...

  8. 定时任务模块——APScheduler

    一.概念: python定时任务框架,基于日期,固定时间间隔,crontab类型的任务,并且可以持久化任务,并能以deamon守护方式运行任务 二.简介: 安装:pip install apsched ...

  9. 百度语音合成api/sdk及demo

    1.流程 1)换取token 用Api Key 和 SecretKey.访问https://openapi.baidu.com/oauth/2.0/token 换取 token // appKey = ...

  10. Andrew Ng机器学习 一: Linear Regression

    一:单变量线性回归(Linear regression with one variable) 背景:在某城市开办饭馆,我们有这样的数据集ex1data1.txt,第一列代表某个城市的人口,第二列代表在 ...