*在js中不同类型之间的运算,所得到结果的类型也会有所变化:
string + number = string
string + boolean = string
string + undefiend = string
number + boolean = number
number + undefiend = NaN
boolean + undefiend = NaN
总结一下就是:
所有与string类型数据进行运算得到的结果一定是字符类型;
与number类型数据进行运算时,会将其它非string类型数据转换为number,若转换成功,则结果为number,转换不成功则为:NaN;
而boolean类型数据进行运算时,会将自身转换为number类型,再与其它的数据进行运算,其运算规则与number一致;
*在js中有一个用来判断数据是否是数字的函数:isNaN(数据) 结果为ture 则不是数字 为false,则是数字
*在js中同样有数据类型的强制转换
toString() 将任何数据转换为字符串
用法:数据.toString()
parseInt() 将数据转换为整型的number类型
用法:parseInt(数据)
规则:从左到右进行转换,当遇到一个不为数字字符时就停止转换
parseFloat() 将数据转换为浮点型的number类型
用法:parseFloat(数据)
规则:从左到右进行转换,当遇到一个不为数字和小数点的字符时就停止转换,并且在小数点后又遇到小数点也停止转换
Number() 将数据转换为number型
用法:Number(数据)
规则:只要包含了非数字字符,返回NaN

1.关于逻辑与、逻辑或的短路:
逻辑与:只要一个条件为假,整个表达式的值都为假,并且不会去判断后面的条件
逻辑或:只要第一个条件为真,整个表达式的值为真,并且不会去判断后面的条件

2.关于小数数值的精确度问题

3.关于位运算符
按位与:将操作数转换为二进制,进行运算的两位数同时为1,结果才为1
按位或:将操作数转换为二进制,进行运算的两位数有一个为1,结果就为1
按位异或:进行比较的数据只有一个为1时

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js运算符</title>
</head>
<body>
<script type="text/javascript">
/*1.关于逻辑与、逻辑或的短路:
逻辑与:只要一个条件为假,整个表达式的值都为假,并且不会去判断后面的条件
逻辑或:只要第一个条件为真,整个表达式的值为真,并且不会去判断后面的条件*/
// 1.1价格打折:用户输入消费金额,如果消费的金额>=100,享受八折,输出实际付费金额
var price = prompt("请输入消费金额:");
price >= && (price = price *0.8);//逻辑与短路
console.log(price);
// 1.2请用户输入一段留言:如果输入了,就输出留言的内容,否则就输出:“主人很懒
// 空字符串 可以当false使用
// undefined、0、0.0、""
var msg = prompt("请输入留言:");
var result = msg || ("主人很懒什么都没留下");//逻辑或短路
console.log(result);
// 2.关于精确度问题
// 买菜找零
var change = - 1.6;
console.log("找零:"+ change);
// 四舍五入解决精确度误差,toFixed(n) n为保留几位小数
change = change.toFixed();
console.log("四舍五入后:"+ change);
/*3.关于位运算符
按位与:将操作数转换为二进制,进行运算的两位数同时为1,结果才为1
按位或:将操作数转换为二进制,进行运算的两位数有一个为1,结果就为1
按位异或:进行比较的数据只有一个为1时 值才为1*/
// 3.1判断数字与1做按位与,最后一位为1为奇数,0为偶数
console.log(( & ) == );//ture偶数
console.log(( & ) == );//false奇数
// 3.2按位或:向下取整,将数据转换成二进制,且小数会被转换为整数
var num3 = 6.5;
console.log(num3 | );//将6.5转换为整数6,然后与0按位或 最后的结果是6 // 3.3交换两个数的值
var num1 = ,num2 = ;
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
console.log(num1,num2);
</script>
</body>
</html>

(*注意:运行代码时,需要将暂时不验证的代码注释掉,或者将需要验证的到吗复制粘贴到其它文件中进行运行)

JavaScript知识点---->运算规则与运算(逻辑、位)的更多相关文章

  1. JavaScript知识点总结

    JavaScript学习总结1.JavaScript是作用于网络和HTML的一个编程语言.2.JavaScript代码必须放在<script></script>标签之间,Jav ...

  2. C# 2进制、8进制、10进制、16进制...各种进制间的转换(三) 数值运算和位运算

    一.数值运算 各进制的数值计算很简单,把各进制数转换成 十进制数进行计算,然后再转换成原类型即可. 举例 :二进制之间的加法 /// <summary> /// 二进制之间的加法 /// ...

  3. javascript知识点积累

    8年javascript知识点积累   08年毕业就开始接触javascript,当时是做asp.net发现很多功能用asp.net控件解决不了,比如checkbox单选,全选问题,自动计算总价问题, ...

  4. JavaScript知识点整理(一)

    JavaScript知识点(一)包括 数据类型.表达式和运算符.语句.对象.数组. 一.数据类型 1) js中6种数据类型:弱类型特性 5种原始类型:number(数字).string(字符串).bo ...

  5. Android实训案例(一)——计算器的运算逻辑

    Android实训案例(一)--计算器的运算逻辑 应一个朋友的邀请,叫我写一个计算器,开始觉得,就一个计算器嘛,很简单的,但是写着写着发现自己写出来的逻辑真不严谨,于是搜索了一下,看到mk(没有打广告 ...

  6. JavaScript中Float类型保留两位小数

    JavaScript中Float类型保留两位小数 核心方法: num:要操作的数字     size:要保留的位数 parseFloat(num).toFixed(size); 实现代码如下:var  ...

  7. Javascript:必须知道的Javascript知识点之“单线程事件驱动”

    heiboard: Javascript:必须知道的Javascript知识点之“单线程事件驱动”

  8. golang中算数运算、位运算、逻辑运算、赋值运算常用方法

    package main import "fmt" var a = 21.0 var b = 5.0 //var c float64 func main() { Arithmeti ...

  9. Javascript知识点记录(三)设计模式

    Javascript设计模式记录,这个方面确实是没写过,工作中也没有用到js设计模式的地方. prototype与面向对象取舍 使用prototype原型继承和使用面向对象,都可以实现闭包的效果.那么 ...

随机推荐

  1. virtualbox 安装 extension pack 方法以及出现 "The installer failed with exit code 1: VBoxExtPackHelperApp.exe: error: Failed to rename the temporary directory to the final one"的解决办法

    virtualbox 的版本:5.1.26    下载地址:https://www.virtualbox.org/wiki/Downloads extension pack 的版本:5.1.26   ...

  2. 冒泡排序C#实现,使用委托,包括三种方式:Fun<>,匿名方法,Lambda表达式

    冒泡排序是一种简单的排序方法,适合于小量数字排序,对于大量数字(超过10个),还有更高效的排序方法. 这里的实现的冒泡排序,需实现功能: 不仅数字排序,还要对任意对象排序 示例: 对People对象的 ...

  3. Qt通过HTTP POST上传文件(python做服务端,附下载)

    本文使用Qt Creator用HTTP POST的方法上传文件,并给出一个上传文件的例程. 本文主要客户端,所以对于服务器端程序编写的描述会比较简略 服务器使用Django编写,django服务器接收 ...

  4. 一次C#和C++的实际应用性能比较(C++允许我们使用任何手段来提高效率,只要愿意做出足够的努力)

    05年时,在微软的Rico Mariani做了一次实际应用的C#和C++的性能比较.事情起源于微软著名的元老Raymond Chen(在下敬仰的超级牛人)用C++写了一个英汉词典程序,来描述讲解优化C ...

  5. Windows 64 位下安装 psyco 1.6

    用 eclipse 运行 python 的时候,第一行总是有红色提示:没有安装 psyco,程序可以正常运行但是会有一点慢.于是就干脆装上吧,红色的提示还是越少越舒服. 百度了一下,在这里,http: ...

  6. 3012C语言_数据

    第二章 数据 2.1 数据类型 2.1.1 数据类型决定 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作 2.2基本数据类型 2.2.1分类 基本类型 类型 符号 关键字 字节 1 ...

  7. 容器化之Docker小知识普及

    Docker确实是个好东西,相当于一个小型虚拟机,里面环境隔离只要有对应的镜像就能运行业务应用.运行基础应用.能跑数据库等等,还能跑linux等等. Docker 从狭义上来讲就是一个进程,从广义上来 ...

  8. 使用 Python 识别并提取图像中的文字

    1. 介绍 介绍使用 python 进行图像的文字识别,将图像中的文字提取出来,可以帮助我们完成很多有趣的事情. 2. 必备工具 tesseract-ocr 下载地址: https://github. ...

  9. mysql-5.7.24-winx64安装与Navicat_for_MySQL_10.1.7注册码

    mysql安装图解:https://blog.csdn.net/qq_38455201/article/details/83419450 Navicat注册码名:组织:注册码:均为NAVN-LNXG- ...

  10. 长春理工大学第十四届程序设计竞赛(重现赛)L

    L.Homework Stream 题目链接:https://ac.nowcoder.com/acm/contest/912/L 题目 作为大珩班尖子生,小r每天有很多作业要完成,例如工图.工图和工图 ...