【粗糙版】javascript的变量、数据类型、运算符、流程结构
本文内容:
- javascript的变量
- javascript的数据类型
- javascript的运算符
- javascript的流程结构
首发日期:2018-05-09
javascript的变量
创建变量:
全局变量:全局变量是在js代码的各个地方都能调用的变量
- 【不在{}内时】var 变量名 = 值;
- 【不论在不在{}内】 变量名 = 值;
局部变量:局部变量是仅仅在函数体内生效的变量
- 【在{}内】var 变量名 = 值;
- 【函数的参数变量也是一种局部变量】

作用域:
- 函数体内,同名的变量,局部变量优先级高于全局变量
- 局部变量在函数外无法调用;
- 嵌套函数中,外层函数无法调用内层函数的局部变量,内存函数可以调用外层函数的局部变量
补充:
- 变量的作用域是一个大坑,还有什么作用域链问题、生命周期问题【比如,函数名跟某一个变量同名时的优先级也是一个不一般的问题】。使用要注意。由于这里是一个简单的记录,所以不记录那么复杂的东西。
javascript的数据类型
- javascript是动态类型的语言,它统一使用var来声明每一个对象,每一个对象的数据决定它是一个什么样的数据类型。
- 所以下面主要介绍数据类型跟变量的关系
数值型:
- number:普通的数字,可以有用八、十、十六等进制来表示,可以是浮点数。
字符型:
- string:被""或''包裹的字符
布尔型:
- boolean:有两个值,一个是true,一个是false;
引用型:
- undefined:声明了变量,但未进行赋值初始化的变量。
- object:表明变量是一个对象;当变量赋值null时代表是一个空对象.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Document</title>
<script>
function f1(){
var test=6;//Number
var a="7";//String
var b=true;
var c;
var d=null;
var e={'name':"lilei"};
console.log(typeof(test));//number
console.log(typeof(a));//string
console.log(typeof(b));//boolean
console.log(typeof(c));//undefined
console.log(typeof(d));//object
console.log(typeof(e));//object
}
</script>
</head>
<body>
<input type="button" value="点击" onclick="f1()">
</body>
</html>

补充:
- 字符串的转义问题:在字符串中可以有些字符具有特定的意义,比如\n显示到网页中时会变成换行符。如果想要“不使用那个特别的意义”,需要在这些特别的字符前面加\
- typeof(变量名)可以返回变量的数据类型。
javascript的运算符
算数运算符:
- +加法运算符
- 加法运算符除了数值相加的功能外,还可以拼接字符串,比如"a"+"b"结果是"ab",7+"a"结果是"7a"。
- -减法运算符
- *乘法运算符
- /除法运算符
- %求余运算符
- +=加法赋值运算符、-=减法赋值运算符、*=乘法赋值运算符、/=除法赋值运算符、%=求余赋值运算符
自增、自减运算符:
- ++:自增运算符,在自己数值的基础上进行加一
- --:自减运算符,在自己数值的基础上进行减一
- 自增、自减运算符可以位于变量之前【先自增,再取值】,也可以位于变量之后【先取值,再自增】,

关系运算符:
- <= :不大于运算符,比如a <= b,如果a不大于b,那么返回true,否则返回false
- < : 小于运算符
- > :大于运算符
- >= :不小于运算符
- == :等于运算符
- !== :不等于运算符
- 比较规则:
- 数值之间:直接比较数值大小
- 一个是数值:把另一个转换成数值
- 字符串之间:比较它们之间的unicode数值大小
- 字符串与非数值:把非数值转成字符串
- 其他。。。
逻辑运算符:
- ! :逻辑非运算,把结果取反,返回结果是布尔值,
- && :逻辑与运算,返回结果是布尔值,
- || :逻辑或运算,返回结果是布尔值
位运算符:
- ~:按位非
- &按位与
- |按位或
- ^按位异或
- <<位左移运算
- >>带符号右移运算
- >>>无符号右移运算
其他运算符:
- ?: :这是一个三目运算符,表达式 (expr1) ? (expr2) : (expr3)。在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。

javascript的流程结构
循环结构:
- while结构
- while(条件表达式){循环执行代码段}

- do-while结构
- do{循环执行代码段}while(条件表达式);
- do-while循环不管初始条件是否成立都会执行一次
- for结构
- for (循环变量=初值;循环条件;计数器){循环执行代码段}

- for-each结构
- for (循环变量 in 集合){循环执行代码段}

选择结构
- if
- if(条件表达式1){条件表达式1为真时执行的代码}else if(条件表示2){条件表达式2为真时执行的代码}else{前面的条件都不符合时执行的代码}
- else if 和else是可选的
- switch
- switch(值){ case 值1:代码段;break;case 值2:代码段;break;case 值3:代码段;break;……default:代码段;}

结束语句:
- return:结束return 所在函数体的运行。并返回return 后面跟着的值。
- break:结束break所在的循环。break也可以在switch用来跳出选择,没有break时会向下执行另外一个case。
- continue:在continue的位置提前结束本次循环,然后执行下一次循环判断。
【粗糙版】javascript的变量、数据类型、运算符、流程结构的更多相关文章
- JAVA 变量 数据类型 运算符 知识小结
---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...
- php入门 数据类型 运算符 语言结构语句 函数 类与面向对象
php PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them ...
- Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)
初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...
- JavaScript--总结一(变量+数据类型+运算符)
JavaScript是什么? 是一门脚本语言(不需要编译,直接执行) 是一门解释性语言 是一门动态类型的语言 是一门基于对象的语言 JavaScript分为三个部分 1.ECMAScript 标准- ...
- JavaScript判断变量数据类型
一.JS中的数据类型 1.数值型(Number):包括整数.浮点数. 2.布尔型(Boolean) 3.字符串型(String) 4.对象(Object) 5.数组(Array) 6.空值(Null) ...
- javascript的变量声明、数据类型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- javascript的变量声明和数据类型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)
一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...
- JavaScript 基础 (变量声明, 数据类型, 控制语句)
创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ...
随机推荐
- JS获取链接中域名等信息
以访问百度为例子http://pan.baidu.com/share/qrcode?w=150&h=150&url=http%3A%2F%2F172.16.1.96%2FWeb%2FG ...
- 运维笔记--docker odoo镜像 运行异常处理
场景描述: 镜像来源,dockerhub odoo官方镜像:https://hub.docker.com/_/odoo odoo镜像运行一段时间后,出现下述异常,可能是触发某个未知bug:该现象在生产 ...
- 深入理解Java Stream流水线
前面我们已经学会如何使用Stream API,用起来真的很爽,但简洁的方法下面似乎隐藏着无尽的秘密,如此强大的API是如何实现的呢?Pipeline是怎么执行的,每次方法调用都会导致一次迭代吗?自动并 ...
- Docker学习之2——镜像
镜像(Images) 镜像是Docker的三大核心之一,类似于虚拟机,作用和虚拟机是一样的,唯独是组成部分会有些区别.简单的说如果我们想启动一个容器就必须要有镜像.docker运行容器前需要本地存在对 ...
- leetcode — next-permutation
import java.util.Arrays; /** * Source : https://oj.leetcode.com/problems/next-permutation/ * * Creat ...
- win32程序之子窗口编程
win32程序之子窗口编程 一丶简介.什么是子窗口 在前边我们已经讲解了窗口的本质.以及如何注册窗口类跟创建窗口. 还讲了消息循环. 那么有很多窗口其实Windows已经帮我们创建出来了.我们直接使用 ...
- 逆向知识第一讲,IDA的熟悉使用
逆向知识第一讲,IDA的熟悉使用 一丶熟悉IDA,以及手工制作sig文件. IDA,静态分析工具,网上随便找一个即可下载. 首先,我们写一个可执行EXE,最简单的 使用IDA打开. 1.提示使用什么格 ...
- 这一年多来,阿里Blink测试体系如何从0走向成熟?
引言 Apache Flink是面向数据流处理和批处理的分布式开源计算框架,2016年阿里巴巴引入Flink框架,改造为Blink.2017年,阿里整合了所有流计算产品,决定以Blink引擎为基础,打 ...
- Mysql加锁过程详解(6)-数据库隔离级别(2)-通过例子理解事务的4种隔离级别
Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...
- SpringBoot学习(七)-->SpringBoot在web开发中的配置
SpringBoot在web开发中的配置 Web开发的自动配置类:在Maven Dependencies-->spring-boot-1.5.2.RELEASE.jar-->org.spr ...