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)的运作原理.理解这个复杂协议的基本原理花了我好几天的时间,但只要 ...
随机推荐
- SRM 387(1-250pt)
DIV1 300pt 题意:有m种颜色的球若干个放在n个盒子里.每次操作可从一个盒子里拿出任意个球(不必同色),放进另一个盒子.要求终态为:1.最多有一个盒子里面装有不同色的球,该盒子成为joker ...
- linux 内核驱动加载过程中 向文件系统中的文件进行读写操作
utils.h 文件: #ifndef __UTILS_H__ #define __UTILS_H__ void a2f(const char *s, ...); #endif utils.c 文件: ...
- macbook pro install ubuntu
https://help.ubuntu.com/community/MacBookPro Determine your hardware revision To determine which ver ...
- Google Picasa
本博文的主要内容有 .Google Picasa的下载 .Google Picasa的安装 .Google Picasa的使用 Google 的免费图片管理工具Picasa,数秒钟内就可找到并欣赏计算 ...
- hdoj 1969 Pie【二分】
Pie Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- MyBatis完全使用指南
MyBatis完全使用指南 转 http://www.jianshu.com/p/1c7c7d1bba33 MyBatis MyBatis作为一个轻量的SQL映射框架,确实很简单,但是知识点挺多,实际 ...
- Java 23种设计模式详尽分析与实例解析之一--创建型模式
面向对象的设计原则 常用的面向对象设计原则包括7个,这些原则并不是独立存在的,它们相互依赖.互为补充. Java设计模式 创建型模式 简单工厂模式 模式动机: 考虑一个简单的软件应用场景,一个软件系统 ...
- UML类图详细介绍
类图主要描述程序对象以及他们之间的关系.一般来说,类.接口.抽象类这些程序对象的区别很容易,但是他们之间六种关系以前总是理解不够深刻,这次进行了一次复习,顺便写成博文以便加深理解 类图中的三种对象 类 ...
- 10个精妙的Java编码最佳实践
这是一个比Josh Bloch的Effective Java规则更精妙的10条Java编码实践的列表.和Josh Bloch的列表容易学习并且关注日常情况相比,这个列表将包含涉及API/SPI设计中不 ...
- Java基础知识强化之集合框架笔记26:LinkedList的特有功能
1. LinkedList的特有功能: (1)添加功能 public void addFirst(Object e) public void addLast(Object e) ( ...