创建: 2017/09/25
更新: 2019/01/14 修改标题 [JavaScript 式与运算符] ->  [JavaScript 式与主要Object的方法]
更新: 2019/02/19 增加【废弃中】标签与总体任务
迁出: 2019/03/03 把Math相关, 数值类型转换相关         迁出到【JavaScript Math
                          把typeof                                       迁出到【JavaScript 检验变量
                          把String相关, String类型转换相互     迁出到【JavaScript String
 
TODO: 拆分内容到各个新博文并将此博文归档为废弃
 2 3-5 7-12 18
 6 13-17 19
 
 运算符
 会改变值的运算符  只有如下几个
 =
 ++, --
 delete
 运算符的优先法则与结合律  p76
 // TODO: 补充
   
 数值运算
 算数运算符  全部作为64位浮点数进行运算(其他语言的double)
 运算前全部转换为double,不能转换的结果为NaN

 二项运算符
 +, =, *, /, %
 整数之间的除法结果也是浮点数!  7/2 // 3.5
 %结果也是浮点数  a%b 符号与a相同
 a-bk的绝对值最想的数
 无法计算的话是NaN  
 true作为1,false作为0   
 0/0 //NaN  
 单项运算符

 ++,--  累加累减
 +   不做任何处理 
 -  改变符号
 前置的先运算在评价式子  let a = 1;
 let b = ++a +1; // a = 2, b = 3
 后置的先评价式子后运算  let a = 1;
 let b = a++ + 1;//a = 2, b = 2
   
   
 代入运算符
 =, +=, -=, *=, /=, %=  
 Math Object的属性与方法  属性

 e(自然对数的底)  Math.E
 ln2  Math.LN2
 ln10   Math.LN10
 log e
     2
 Math.LOG2E
 lge

log   e
     10

 Math.LOG10E 
 π(圆周率)  Math.PI
 0.5的平方根  Math.SQRT1_2 
 2的平方根  Math.SQRT2
   
   

 方法

 绝对值   Math.abs(x)
 arccos(x)
*arc是指弧度,也就是cos值对应的弧度的意思
 Math.acos(x) 
 arccosh(x)  Math.acosh(x)
 arcsin(x)  Math.asin(x)
 arcsinh(x)  Math.asinh(x)
 arctan(x)  Math.atan(x9
 arctan2(y,x)
 y/x的acrtan
 Math.atan2(y,x)
 arctanh(x)  Math.atanh(x)
 立方根  Math.cbrt(x)
 x以上的最小整数(包含自身)  Math.ceil(x)
注意:
 Math.ceil(5) // 5
 x转为32位无符号整数时开头0的数量   Math.clz32(x)
 cos(x)  Math.cos(x)
 cosh(x)  Math.cosh(x)
 e的x次方  Math.exp(x)
 e的x次方 -1  Math.expm1(x)
 x以下的最大整数  Math.floor(x)
 最接近x的单精度浮点数(float)  Math.fround(x)
 平方的和的根  Math.hypot(x1, x2, ...)
 a,b的32位整数乘法
 就是运算比较快的乘法
 Math.imul(a, b)
 log  x
     e
 Math.log(x)
 log x
     2
 Math.log2(x)
 log  x
     10
 Math.log10(x)
 log (x+1)
     e
 Math.log1p(x)
 最大值  Math.max(x1, x2, ...)
 最小值  Math.min(x1, x2, ...)
 x的p次方  Math.pow(x, p)
 0到1之间的随机数
 以当前时间为种子 
 Math.random()
 x的四舍五入  Math.round(x)
 获取x的符号
 + =》1
 0 =》 0
 -  =》-1 
 Math.sign(x)
 sin(x)  Math.sin(x)
 sinh(x)  Math.sinh(x)
 平方根  Math.sqrt(x)
 tan(x)   Math.tan(x)
 去掉小数部分  Math.trunc(x)
   
   
   
   
 浮点数与误差  Math.abs(a/b - 0.8) < 1e-10
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 字符串的操作
 字符串的连接  +

 左右都是字符串   直接连接
 一边是字符串或者可以转换为字符串的object  另一边转换成字符串来连接
 其他情况  左右转换为数值相加
 (转换不了的作为NaN)
   
   
   
   
   
   
   
 操作字符串的方法  注意:
字符串字面量本身不是Object

 注意: 这些方法返回结果,但是字符串本身不变

 生成字符串Oject  var sample = new String("...");
这样的静态值转换为object成为wrapping(ラッピング)
 wrap obejct
 ラッパーオブジェクト 
 var sample = "hello"
 var c = sample.length // 5

字符串不是Object,所以这里自动生成一个即用即消的object
  var msgObj = new String(msg)
  var c = msgObj.length

 获取长度  length
 获取第n个字符的十进制代码
 ES6
 codePointAt(n)
 获取第n个字符  charAt(n)
 也可以和数组一样,但是只可读,不能赋值
 str[n]
 连接  concat(s1, s2, s3, ...) 直接连接
 concat([s1, s2, s3, ...]) s1直接连接,后面的都加上","
  concat() 可以不要参数,什么都不做
 是否以s结尾
 ES6
 endsWith(s[,n])
 如果指定n, 则n作为结尾位置来判断
 是否包含
 ES6
 includes(s[ ,n])
 如果指定n, 则n作为开头来搜索
 最先出现的位置  indexOf(s)
 最后出现的位置   lastIndexOf(s)
 sort顺序下是否在s前后
 或者相同
 localeCompare(s)
 相同的时候返回0
 用参数r正规表现匹配的结果  match(r)
 用给定格式来标准化  normalize([form])
 重复n次连接自己
 ES6
 repeat(n)
 0次清空,1次不变 ,2次开始才是增加
 用s2代替s1  replace(s1, s2)
 返回正规表现匹配到的开头索引  search(r)
 获取子字符串

 slice(m,n)  slice(m,n)
 负数代表从后往前数
 slice(n) 从n到最后
 substring(m,n)  不支持负参数,负的作为0
 后面参数小的话自动对调
   
   
   
   
   
   
   
   
 以s作为分割符进行分割  split(s[, n])
 返回分割后的数组
 指定n的话,n是分割元素的上限数
 是否以s开头
 ES6
 startsWith(s[, n])
 指定n的话,以n作为开头
 大写文字

 根据位置转换为大写  toLocaleUpperCase()
 不根据位置   toUpperCase()
   
   
   
   
   
   
   
   

 小写文字

 根据位置转换为小写  toLocaleLowerCase()
 不根据位置  toLowerCase() 
   
   
   
   
   
   
   
   
 StringObject转换为字符串  toString()
 valueOf()
 两个一样
 去掉前后的空白  trim()
   
   
   
   
   
   
   
 String构析函数的方法

 1  String.length
 从参数的字符代码生成字符串  String.fromCharCode()
 从CodePoint生成字符串
 ES6
 String.fromCharPoint()
 String的原型对象  String.prototype
 获取模板的字符串
 ES6
 String.row()
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 逻辑运算符与关系运算符
 逻辑运算符
 ==  等价
 值相等true,不等false
 !=  不等值
 ===  相同
 左右类型相同,值相等true
 !==  不相同
 值或类型不同
 <,>  值大小关系
 <=, >=  值大于等于,小于等于
   
   
   
   
   
   
   
   
   
 关系运算符
   
   
   
   
   
   
   
   
   
   
   
 位运算
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 其他运算符
 判断类型
 typeof
 返回对象值数据类型,字符串
 typeof "A" //string

 数据  返回值 
 数字和NaN  "number"
 字符串  "string"
 未定义值
 (就一个undefined)
 "undefined"
 空值null  "object"
 符号
 Symbol("sample")
 "symbol"
 函数以外的对象  "object"
 函数  "function"
   
   
 三项运算符
 ?:
 三项运算符
 a = 5 ? a : 0
 ,  for里面用
 动态运行代码  eval_r("...")
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 明确的类型转换
 数值--》字符串

 直接和字符串用+接字符串  例:
 "abc" + 1//"abc1"
 1 + "abc"//"1abc"
 Number的方法

 转换成字符  toString()
 可以带参数(2~32),表示表达的进制
   toLocaleString(n)
 指定小数点下位数  toFixed(n)
 指定小数点以下的位数
 指数表示  toExponential(n)
 n表示小数点下位数
 有效位数表示  toPrecision(n)
 n指定有效位数
 有效位数小于整数位数,科学计数法表示 
   
   
   
   
   
 String生成方法  String(n)
 n可以使任意类型
 生成的是字符串不是对象
   
   
   
   
   
   
   
 字符串--》数值

 自动转换  var s = "2"
 s - 0
 +s
 函数

parseInt(n,r)  第二参数是说明第一参数是几进制表达,默认10 
parseFloat(n)  转为浮点数
 Number生成方法  Number(n) 
 生成的是数值不是数值对象
   
   
 任意类型-》布尔值  !!x
 Boolean(x)

注: 数值里0是false
   
 字符串里""是false

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

【废弃中】JavaScript 式与运算符的更多相关文章

  1. 简谈 JavaScript、Java 中链式方法调用大致实现原理

    相信,在 JavaScript .C# 中都见过不少链式方法调用,那么,其中实现该类链式调用原理,大家有没有仔细思考过?其中 JavaScript 类库:jQuery 中就存在大量例子,而在 C# 中 ...

  2. javascript 中的==(相等运算符)与===(等同运算符)比较

    javascript 中的==(相等运算符)与===(等同运算符)比较:(1)==用于一般比较,===用于严格比较,(2)==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flas ...

  3. 【废弃中】JavaScript 内置Object

    创建: 2017/09/24 更新: 2018/01/22 增加window对象内容的链接 更改标题: [JavaScript 主要的自带Object] -> [JavaScript 内置Obj ...

  4. 【废弃中】【WIP】JavaScript 数组

    创建: 2018/01/22 更新: 2018/05/20 把此博文加入[javascript]分类, 原来忘记了 废弃: 2019/02/19 重构此篇.原文归入废弃  增加[废弃中]标签与总体任务 ...

  5. JavaScript基础——使用运算符

    JavaScript运算符允许你改变一个变量的值.你已经熟悉了用于赋值给变量的=运算符.JavaScript提供了几种不同的运算符,它们可以划分为两大类:算数运算符和赋值运算符. 1.算数运算符 你可 ...

  6. 巧用 .NET 中的「合并运算符」获得 URL 中的参数

    获取 URL 中的 GET 参数,无论用什么语言开发网站,几乎是必须会用到的代码.但获取 URL 参数经常需要注意一点就是要先判断是否有这个参数存在,如果存在则取出,如果不存在则用另一个值.这个运算称 ...

  7. JavaScript 基本语法 -- 运算符的优先级

    在所有的运算里,都是有运算顺序的.小时候学四则运算的时候,我们都知道这么一个规则:先乘除后加减,有括号要先算括号! 同样的,在JavaScript里面,运算符也是有相应的优先级的.其优先级如下表所示, ...

  8. 结构体作为map的key或放入set中,需要重载<运算符

    结构体作为map的key或放入set中,需要重载<运算符,如下: typedef struct tagRoadKey{    int m_i32Type;    int m_i32Scale; ...

  9. JavaScript按位运算符~

    1. JavaScript按位运算符 Bit operators work on 32 bits numbers. 2. JavaScript按位运算符~ 值得注意的是,在JavaScript中,~5 ...

随机推荐

  1. JavaScript事件在WebKit中的处理流程研究

    本文主要探讨了JavaScript事件在WebKit中的注冊和触发机制. JS事件有两种注冊方式: 通过DOM节点的属性加入或者通过node.addEventListener()函数注冊: 通过DOM ...

  2. Hybrid--WebView中使用Ajax

    Hybrid框架下的app,使用的Ajax.须要注意的是UIWebViewDelegate不会监測到Ajax的request.也就是再运行Ajax代码时.shouldStartLoadWithReuq ...

  3. EasyDarwin开源音频解码项目EasyAudioDecoder:基于ffmpeg的安卓音频(AAC、G726)解码库(第一部分,ffmpeg-android的编译)

    ffmpeg是一套开源的,完整的流媒体解决方案.基于它可以很轻松构建一些强大的应用程序.对于流媒体这个行业,ffmpeg就像圣经一样的存在.为了表达敬意,在这里把ffmpeg官网的一段简介搬过来,ff ...

  4. CenterOS下搭建Hadoop环境

    检查防火墙状态 service iptables status 关闭防火墙 service iptables stop 查看防火墙开机启动状态 chkconfig iptables --list 关闭 ...

  5. c#4.5新语法--自动属性和隐式类型

    1.自动属性    自动属性是c#中属性定义的两种形式的一种:传统属性定义.自动属性.    1.1 传统属性定义        private int _age;        public int ...

  6. Hamming校验码

    可参考:http://winda.blog.51cto.com/55153/1068000 Hamming校验码作用:用于校验通信数据,防止出现错误,并具有一定的纠错功能. 汉明码在传输的消息流中插入 ...

  7. Python升级已经安装的第三方库

    Python升级已经安装的第三方库 主要两步操作,查看需要升级库,升级库.如下: pip list # 列出安装的库 pip list --outdated # 列出有更新的库 pip install ...

  8. Appium——连接真机,adb devices获取不到设备号

    连接真机后,使用 adb devices获取不到设备号. 1.检查usb接口是否正常,是否正常链接到电脑 2.手机开发者模式是否开启,usb调试是否开启 3.检查驱动是否正常 4.如果驱动显示黄叹号, ...

  9. 'gbk' codec can't encode character '\xa5' in position 4546: illegal multibyte sequence错误解决

    sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030') 原文 http://blog.csdn.net/jim7424 ...

  10. 分布式session之redis解决方案实现

    一.首先Session Session 是客户端与服务器通讯会话技术, 比如浏览器登陆.记录整个浏览会话信息.session存放在服务器,关闭浏览器不会失效. Session实现原理 客户对向服务器端 ...