【废弃中】JavaScript 式与运算符

创建: 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
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

 

posted @ 2017-09-25 04:21  懒虫哥哥  阅读(195)  评论(0编辑  收藏  举报