js 表达式与运算符 详解(上)
表达式:
表达式是用于JavaScript脚本运行时进行计算的式子,可以包含常量、变量、运算符
<script>
var r = 2
var pi = 3.14
var circle = pi*r*r
alert("这个圆的面积= "+circle) //=>这个圆的面积=12.56
</script>
算术运算符:
+ 、- 、* 、/ 、%
+号用来连接两个字符串
只要+连接的操作数中有一个是字符串型,js就会自动提成非字符串型数据作为字符串型数据来处理
js代码的执行顺序是从左到右的,所以在+连接的表达式中,遇到字符串型数据之前,所有出现的数值型数据(或者可以自动转换为数值型的数据仍被作为数值来处理)为了避免这种情况,我们可以在表达式前拼一个空字符串
<script>
var a = 3,b = 4 ;
alert(a+b) //=>7
alert(a-b) //=>-1
alert(a*b) //=>12
alert(a/b) //=>0.75
alert(a%b) //=>3
alert(a+"2") //=>32
alert(a+b+"3king") //=>73king
alert(""+a+b+"3king") //=>343king </script>
++ 、-- 分为前缀开式和后缀形式
前缀开式先加减1在执行
后缀形式先执行再加减1
所有能转换为number类型的其它类型能都自加和自减
数值型能支持自增自减远算符
布尔值能支持自增自减运算符
null支持自增自减运算符
字符串型不能支持自增自减运算符
undefined不能支持自增自减运算符
<script>
var a = 1
alert(a++) //=>1
alert(a) //=>2 a++表示先执行再自增
var b =1
alert(++b) //=>2
alert(b) //=>2 ++b表示先自增再执行
//所有能强制转换为number的类型都能自减和自加
</script>
字符连接符:
通过+连接字符串
<script>
document.write("欢迎来到"+"ziksang博客园") //=>欢迎来到ziksang博客园
document.write(1+"2") //=>12
</script>
赋值运算符:
= 、+= 、-= 、*= 、/= 、%=、
<script>
var a = 1,b =2;
b =a
alert(b) //=> 1 a的值赋值给了b 覆盖了原本的值
b +=a //=>3 其解析的意思是 b=b+a 1+2=3
//同理
b -=a
b *=a
b /=a
b %=a //具体值大家可以去测试一下 用alert(b)来弹出各个不同的方式
</script>
js 表达式与运算符 详解(上)的更多相关文章
- js 表达式与运算符 详解(下)
比较运算符: > .>= .<. <=. ==. !=. ===. !==. 比较运算符的结果都为布尔值 ==只比较值是否相等 而 ===比较的是值和数据类型都要 ...
- [js高手之路]深入浅出webpack教程系列2-配置文件webpack.config.js详解(上)
[js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件we ...
- js调试工具Console命令详解
这篇文章主要介绍了js调试工具Console命令详解,需要的朋友可以参考下 一.显示信息的命令 复制代码 代码如下: < !DOCTYPE html> < html> &l ...
- JQ的offset().top与js的offsetTop区别详解
一.前言 最近在做一个图片懒加载的插件,就纵轴(Y轴)而言,我需要时时获取图片的上偏移量,好判断是否已进入视图区域,而我所理解的是offsetTop应该是跟offset().top一样的,然后陷入了因 ...
- Net is as typeof 运行运算符详解 net 自定义泛型那点事
Net is as typeof 运行运算符详解 概述 在了解运行运算符的前提我们需要了解什么是RTTI ,在任何一门面向对象的语言中,都有RTTI这个概念(即 运行时). RTTI(Run-Ti ...
- JQ的offset().top与JS的getBoundingClientRect区别详解,JS获取元素距离视窗顶部可变距离
壹 ❀ 引 我在 JQ的offset().top与js的offsetTop区别详解 这篇博客中详细分析了JQ方法offset().top与JS属性offsetTop的区别,并得出了一条offset( ...
- IE8“开发人员工具”使用详解上(各级菜单详解)
来源: http://www.cnblogs.com/JustinYoung/archive/2009/03/24/kaifarenyuangongju.html IE8“开发人员工具”使用详解上(各 ...
- C++框架_之Qt的窗口部件系统的详解-上
C++框架_之Qt的窗口部件系统的详解-上 第一部分概述 第一次建立helloworld程序时,曾看到Qt Creator提供的默认基类只有QMainWindow.QWidget和QDialog三种. ...
- SSL/TLS协议详解(上):密码套件,哈希,加密,密钥交换算法
本文转载自SSL/TLS协议详解(上):密码套件,哈希,加密,密钥交换算法 导语 作为一名安全爱好者,我一向很喜欢SSL(目前是TLS)的运作原理.理解这个复杂协议的基本原理花了我好几天的时间,但只要 ...
随机推荐
- UVA 10561 Treblecross(博弈论)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=32209 [思路] 博弈论. 根据X分布划分禁区,每个可以放置的块为 ...
- poj 1564 Sum It Up【dfs+去重】
Sum It Up Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6682 Accepted: 3475 Descrip ...
- Struct2 向Action中传递参数(中文乱码问题)
就是把视图上的值传递到Action定义的方法中 也就是把数据从前台传递到后台 三种方式: 1. 使用action属性接收参数 比如jsp页面: <body> 使用action属性接收参数 ...
- 单元测试时候使用[ClassInitialize]会该方法必须是静态的公共方法,不返回值并且应采用一个TestContext类型的参数报错的解决办法
using Microsoft.VisualStudio.TestTools.UnitTesting; 如果该DLL应用的是 C:\Program Files\Microsoft Visual Stu ...
- WebRTC clientICE 延迟问题
本文原创自 http://blog.csdn.net/voipmaker 转载注明出处. 近期在优化WebRTCclient呼叫延迟问题.原因是ICE协议栈在收集地址到探測协商过程花费非常长时间.这 ...
- objective-c 中的关联介绍
objective-c 中的关联介绍 转载请注明CSDN博客上的出处: http://blog.csdn.net/daiyibo123/article/details/46471993 如何设置关联 ...
- IOS-UIProgressView的简单介绍
IOS-UIProgressView的简单介绍 转载:http://blog.sina.com.cn/s/blog_9c2363ad0101e1jy.html // UIProgressView的使用 ...
- iOS 复杂动画之抽丝剥茧
一.前言 随着开发者的增多和时间的累积,AppStore已经有非常多的应用了,每年都有很多新的APP产生.但是我们手机上留存的应用有限,所以如何吸引用户,成为产品设计的一项重要内容.其中炫酷的动画效果 ...
- JAVA中的static修饰的方法不能被重写
可以重写静态方法,但重写后的静态方法不支持多态. 其实static根本就没有重写之说.static方法引用的时候应该用类名来引用,而不是对象.同时static方法不参与继承,所以在继承体系里面也不存在 ...
- MySQL日志概述
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3859866.html ...