1、算术运算(单目运算符)

+ 加 、- 减、* 乘、 / 除、 % 取余、++ 自增、-- 自减、
>>> +:有两种作用,链接字符串/加法运算,当+两边全为数字时,进行加法运算,当+两边有任意一边为字符串时,起链接字符的作用
链接之后的结果为字符串。
(除+外,其余符号运算时,会先尝试将左右变量Numbar函数转为数字)
>>> /:结果将会保留小数点。
 
>>> ++:自增运算符,将变量在原有基础上+1
--:自减运算符,将变量在原有基础上-1
[a++和++a的异同]
② 相同点:不论a++还是++a,运算完以后,a的值均会+1
② 不同点:a++,先用a的值去运算,再把a+1;
++a 先把a+1 在用a+1以后的值去运算,
 

2、赋值运算

= 赋值 += -= *= /= %=
 
+=:a+=b 相当于 a=a+b;但是前者的运算运算效率要比后者快,所以推荐使用+=的写法;

3、关系运算

== 等于、=== 全等、 != 不等、 !== 不全等、 >、<、>=、<=
>>>关系运算符,运算之后的结果,只能是Boolean类型
>>>判断一个数字是否处于某个区间,必须用&&链接:
a<10 && a>0 √ 10>a>0
>>>===:严格等于:要求不但要类型相同,值也必须相同,类型不同,结果直接为false;类型相同在进行下一步判断;
>>> ==:等于 类型相同,与===效果一样,类型不同时,会先尝试Number函数将两边转为数字,然后再进行判断
但是有两个特别例,如:Null==false × Null==Undefined √
 

4、条件运算符(多目运算)

a>b?true:false
有两个重要符号:? 和 :
当? 前面部分,运算结果为true时,执行:前面的代码;
当? 前面部分,运算结果为false时,执行:后面的代码
冒号两边可以为数值,则整个式子可用于赋值。var a = 1<2?1:2;
冒号两边可以为代码块,将直接执行代码,1<2?alert(1)alert(2);
多目运算符可以多层嵌套。var a = 1<2?alert(1):(1>0?4:5);

5、位运算符、 逻辑运算符

&& 与、 || 或、!非、
&& 两边都成立结果为true
|| 两边有任意一边成立,结果为true

6、运算符的优先级

() //小括号最高
! ++ -- //单目运算符
* / %
+ -
> < >= <=
== !=
&& //与或同时存在时,&&比|| 高
||
= += -= *= /= //最低的是各种赋值
[使用js的三种方式]
1、在HTML标签中,直接内嵌js(并不提倡使用)
<button onclick="alert('xiaobaiozi!dianwo')">hjhujhjn</button>
>>>不符合w3c关于内容与行为分离的要求!!
2、在HTML页面中使用<script></script>包裹js代码
<script type="text/javascript">
代码
</script>
>>>script标签可以放到页面的任何位置。
3、引入外部的JS文件使用script标签
<script language="JavaScript" src="js/01.js"></script>
[注意事项]
① <script></script>可以嵌入到页面的任意位置,但是位置的不同会导致JS代码的执行顺序不同
比如:<script></script>放到<body>前面则JS代码就会在页面加载之前就执行
② 引入外部的JS代码<script></script>必须是成对出现的标签,而且。标签中不能再有任何的JS代码
<script type="text/javascript">
/*
* JS中的多行注释,ctrl+shift+/
*
*
*/
//JS中的单行注释 ctrl+/
 

[JS中的变量]

1、JS中变量声明的写法:

var num = 10;//使用声明的变量,属于局部变量,只在当前作用域内有效
num = 10;//不用var声明的变量,默认为全局变量,在整个JS文件中都有效
如果上面的变量报错 则下面的变量不会显示
var x=8,y,z=10;//使用一行语句,同时声明多个变量,上式中,y属于以声明,但为赋值状态,结果为undefined
[声明变量的注意事项]
① JS中所有变量的声明,均使用var关键字,变量具体是什么数据类型取决于给变量赋值的类型;
② 同一个变量,可以在多次不同赋值时,修改变量的数据类型;
var a = 10;//从初始声明是 a属于整数型
a = "哈哈哈" //重复赋值时 整数型的a被修改为字符串类型
③ 变量可以使用var声明,也可以不使用var声明;
[区别]使用var声明为局部变量,不使用var声明全部变量
④ 只用var声明,但是不赋值,结果为undefined
例如;var a; // a为undefined ; (但是,如果不声明也不赋值的a,直接使用会报错)
⑤ 同一变量名,可以多次使用var声明,但是 后面的var并没什么用,第二次在使用var声明时只会被理解为普通的赋值操作.

2、变量名的命名要求:

① 变量名,只能有字母、数字、下划线组成
②开头不能是数字
③ 变量名区分大小写,大写字母与小写字母为不同变量

3、变量名的命名规范:

① 要符合小驼峰法则(骆驼命名法):
首字母小写,之后每个单词的首字母大写;
myNameIsLiNan √
②或者使用匈牙利命名法:
所有字母小写,单词之间用_分隔
my_name_is_li_nan √
mynameislinan × 能用,但是不规范

4、JS中的数据类型:

Undefined:未定义,已经使用var声明的变量,但是没有赋值, var a;
Null:表示空的引用。
Booleadn:布尔类型。只有两个值:表示 true/flase
Number:数值类型,可以是正数,也可以是小数;
String:字符串类型,用""或 ''包裹的内容,称为字符串
Object:对象类型,后续讲解.....

【必须记住 单词也要会背】

5、【常用的数值函数】

①  isNaN():判断一个变量或一个常量,是否是NaN(not a num 非数值)
使用isNaN()判断时,会尝试使用Number()函数进行转换,如果最终结果转为数字,则不是NaN,结果为false
ge: var myNameIsLiNan = 1
alert(isNaN(myNameIsLiNan))
②  Number()函数:将其他的函数尝试转为数值型。
[字符串类型]
>>> 字符串为纯数值字符串,会转为对应的数字;"111"->111
>>> 字符串为空字符串,会转为0;""->0
>>> 字符串包含任何其他字符时,都不能转 ;"1a"->NaN
[Booleadn类型]
true->0 false->0
[Null/Undefined]
Null->0 Undefined->NaN
[Object]
 
③ parseInt(): 将字符串转为整数类型
>>> 纯数值字符,能转,
"12"->12 ; "12.9"->12 (小数转化时,直接抹掉小数点,不进行四舍五入)
>>> 空字符串,不能转:""->NaN
>>> 包含其他字符的字符串 ,会截取第一个非数值字符串前的数字部分
"123a456"->123 "k123456"->NaN
>>> parseInt()只能转字符串,转其他类型,全是NaN
[Number函数与parseInt函数的区别]

1、Namber函数可以转各种类型的数据,parseInt函数只能转字符串

2、两者在转字符串时,结果不完全相同。(详见上面解释)
④ parseFloat:将字符串转为数值型;
转换规则与parseInt相同,只是如果有小数,则保留小数点,如果没有小数点则依然是整数。
⑤ typeof:检测变量的数据类型:
字符串->string 数值->Number true/flase->Boolead
未定义->Undefined 对象/Null->Obgrct 函数->function

[JS常用的输入输出语句]

1、document.write();将()中的内容,打印输出到浏览器屏幕上;

使用时需注意:除变量/常量外的所有内容,必须放到""中,变量和常量必须放到""外面
如果同时有变量和字符串,必须用+链接
eg: document.write("左手中的纸牌:"+left+"<br />");

2、alert();使用弹窗输出;

弹窗警告,()中的内容与上述要求相同

3、prompt();弹窗输入;

接受两部分参数:
① 输入框上面的提示内容,可选
② 输入框里面的默认信息,可选
当只写一部分时,表示输入框上面的提示内容;
可以定义变量,接受输入的内容,点击确定按钮,变量将被赋值为输入 的内容;点击取消按钮,变量将被赋值为null
输入内容时,默认接收的数据类型都是字符串!!!
 
【练习】
<script type="text/javascript">
 
var num1= prompt("请输入姓名");
var num2= prompt("请输入学号");
var num3= prompt("请输入班级");
var num4= prompt("请输入地址");
 
document.write("<table width='300px' height='200px' border='2px' bgcolor='#00BBFF'>");
document.write("<tr><td>姓名"+"</td>");
document.write("<td>学号"+"</td>");
document.write("<td>班级"+"</td>");
document.write("<td>地址"+"</td>"+"</tr>");
document.write("<tr><td>"+num1+"</td>");
document.write("<td>"+num2+"</td>");
document.write("<td>"+num3+"</td>");
document.write("<td>"+num4+"</td>"+"</tr>");
 
document.write("</table>");

JS中的运算符 以及变量和输入输出的更多相关文章

  1. JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构

    JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...

  2. js中的运算符和条件语句

    js中的运算符大体上可以分为4类:1算术运算符.2一元操作符.3比较运算符.4逻辑运算符. 算术运算符一般指的是加减乘除求余这五种操作符:+,-,*,/,%.通过算术运算符可以对js中的变量进行操作. ...

  3. JS中的运算符和JS中的分支结构

    JS中的运算符 1.算术运算(单目运算符) + .-.*. /. %取余.++自增 .--自减 +:两种作用,链接字符串/加法运算.当+两边全为数字时,进行加法运算:当+两边有任意一边为字符串时,起链 ...

  4. 让你彻底搞懂JS中复杂运算符==

    让你彻底搞懂JS中复杂运算符== 大家知道,==是JavaScript中比较复杂的一个运算符.它的运算规则奇怪,容易让人犯错,从而成为JavaScript中“最糟糕的特性”之一. 在仔细阅读了ECMA ...

  5. [js]js的惰性声明, js中声明过的变量(预解释),后在不会重新声明了

    js的惰性声明, js中声明过的变量(预解释),后在不会重新声明了 fn(); // 声明+定义 js中声明过一次的变量,之后在不会重新声明了 function fn() { console.log( ...

  6. js中三种定义变量 const, var, let 的区别

    js中三种定义变量的方式const, var, let的区别 1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始化 ...

  7. 深入探究js中的隐式变量声明

    前两天遇到的问题,经过很多网友的深刻讨论,终于有一个相对可以解释的通的逻辑了,然后我仔细研究了一下相关的点,顺带研究了一下js中的隐式变量. 以下文章中提到的隐式变量都是指没有用var,let,con ...

  8. JS中的运算符_函数学习

    js中的运算符:     算数运算符:     + - * / % ++ --          逻辑运算符:     & | !  && || < > <= ...

  9. 浅谈JS中 var let const 变量声明

    浅谈JS中 var let const 变量声明 用var来声明变量会出现的问题: 1. 允许重复的变量声明:导致数据被覆盖 2. 变量提升:怪异的数据访问.闭包问题 3. 全局变量挂载到全局对象:全 ...

随机推荐

  1. java基础06 Java中的递归

      一.递归是指直接或间接地调用自身. 二.递归的注意事项:             A:要有出口,否则就是死递归 B:次数不能过多,否则内存溢出 C:构造方法不能递归使用     三.举例子  递归 ...

  2. Xcode导出App一般问题及其解决方法(开发者协议变更及Bundle Id过期问题)

    Xcode导出App一般问题及其解决方法 问题一:开发者协议变更问题. 变更后打包会出现如下图A警告,此时点击 "visit developer website"进入Apple开发 ...

  3. 如何在web项目中添加javamelody monitoring 监控。

    1.在工程的maven pom中添加依赖javamelody-core <!-- monitoring监控 --><!-- https://mvnrepository.com/art ...

  4. Java面向对象之抽象类,接口

    抽象类: 含有抽象方法的类被声明为抽象类 抽象方法由子类去实现 含有抽象方法的类必须被声明为抽象类 抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法 抽象方法: 声明而未被实现的 ...

  5. href设置action绝对路径和相对路径

    绝对路径: 示例: <a href="<%=basePath %>account/list.action"></a> 注意:这里${basePa ...

  6. poj 1200 crasy search

    https://vjudge.net/problem/POJ-1200 题意: 给出一个字符串,给出子串的长度n和给出的字符串中不同字符的个数nc,统计这个字符串一共有多少不同的长度为n的子串. 思路 ...

  7. 【css】盒子模型 之 概述

    摘要 一些基本的概念以及常见使用问题 概述 BFC 是css 中布局的核心 - 盒模型,根据块级元素及行级元素可分为块级容器, 行级容器,但容器内部都遵循 BFC BFC 空间布局 备注: IE 的盒 ...

  8. 在CentOS7上部署OpenStack 步骤详解

    OpenStack作为一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,开放源代码项目的云计算管理平台项目.具体知识我会在后面文章中做出介绍,本章主要按步骤给大家演示在Cent ...

  9. Java并发编程——线程安全及解决机制简介

    简介: 本文主要介绍了Java多线程环境下,可能会出现的问题(线程不安全)以及相应的解决措施.通过本文,你将学习到如下几块知识: 1. 为什么需要多线程(多线程的优势) 1. 多线程带来的问题—线程安 ...

  10. Python序列化和反序列化

    Python序列化和反序列化 通过将对象序列化可以将其存储在变量或者文件中,可以保存当时对象的状态,实现其生命周期的延长.并且需要时可以再次将这个对象读取出来.Python中有几个常用模块可实现这一功 ...