*在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. x64内联汇编调用API(需intel编译器,vc不支持x64内联汇编)

    #include "stdafx.h" #include <windows.h> STARTUPINFOW StartInfo  = {0}; PROCESS_INFO ...

  2. 桌面程序阻止Windows关机(使用Message.Result取得DefWindowProc API函数的返回值,非常重要)

    Windows Client 客户端在关机,不外乎两种情况: 1. 没有处理 Windows 关机消息: 2.处理了关机消息,但是超时了: 上面这两种情况,都会让Windows 关不了机.在现实生活中 ...

  3. Linux用户和权限

    用户和用户组管理 linux使用用户和组来限制资源的使用. 在linux上运行任何程序或命令都要以一个具体的用户来运行,这个用户的权限决定了相应的程序能访问的资源和能执行的操作. 用户相关命令 组是用 ...

  4. abp(net core)+easyui+efcore仓储系统——展现层实现增删改查之控制器(六)

    abp(net core)+easyui+efcore仓储系统目录 abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一) abp(net core)+easyui+e ...

  5. PHP实现图片(文件)上传

    这几天整理做过的php项目,感觉这个经常会用到,传上来共享一下咯 首先,前端界面 1.表单的首行需要加上enctype="multipart/form-data",需要上传的图片必 ...

  6. .NET开发框架(二)-框架功能简述

    若视频播放不了,请点击 这里查看 本框架为响应式SPA框架,支持PC与手机端的屏幕自适应.手机展示效果视频在文章末尾查看. 框架入口地址:http://letyouknow.net/ 1.框架登录界面 ...

  7. Netty源码分析--Channel注册(中)(六)

    接上一篇,我们继续看 不知道大家第一次看这段代码的时候有没有一脸懵逼,反正我是一脸懵,为什么这个if else 最终都是调用的register0方法,都是一样的. 其实这里就是为什么Netty是线程安 ...

  8. 对比Hashtable,HashMap,TreeMap,谈谈对HashMap的理解

    都实现了Map接口,存储的内容是基于key-value的键值对映射,一个映射不能有重复的键,一个键最多只能映射一个值. 1.初始化的时候:HashTable在不指定容量的情况下的默认容量是11,且不要 ...

  9. kafka搭建相关可能出现的bug

    在Kafka搭建时,首先安装zookeeper,新版本直接解压,启动就好了.由于什么原因,在虚拟机下,必须用root账户启动zookeeper,不然其中一个文件由于没有权限无法创建,导致zookeep ...

  10. Codeforces Gym101161E:ACM Tax(主席树+LCA)

    题目链接 题意 给出一棵有边权的树,然后给出q个查询,每次查询问两个结点的路径上的边的长度的中位数是多少. 思路 这道题目是用主席树(用权值当结点)和LCA来做的. 和之前做过的区间第K大类似,这道题 ...