本文内容:

  • 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的变量、数据类型、运算符、流程结构的更多相关文章

  1. JAVA 变量 数据类型 运算符 知识小结

    ---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...

  2. php入门 数据类型 运算符 语言结构语句 函数 类与面向对象

    php PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them ...

  3. Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)

    初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...

  4. JavaScript--总结一(变量+数据类型+运算符)

    JavaScript是什么? 是一门脚本语言(不需要编译,直接执行) 是一门解释性语言 是一门动态类型的语言 是一门基于对象的语言 JavaScript分为三个部分 1.ECMAScript  标准- ...

  5. JavaScript判断变量数据类型

    一.JS中的数据类型 1.数值型(Number):包括整数.浮点数. 2.布尔型(Boolean) 3.字符串型(String) 4.对象(Object) 5.数组(Array) 6.空值(Null) ...

  6. javascript的变量声明、数据类型

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. javascript的变量声明和数据类型

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)

    一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...

  9. JavaScript 基础 (变量声明, 数据类型, 控制语句)

    创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ...

随机推荐

  1. 2.java面向对象类与类/类与对象之间关系详解

    继承.实现.依赖.关联.聚合.组合的联系与区别 下面的内容很基础,同时也很简单,但是也很重要. 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功 ...

  2. sql server 备份与恢复系列五 完整模式下的备份与还原

    一.概述 前面介绍了简单恢复模式和大容量恢复模式,这篇继续写完整恢复模式下的备份与还原.在完整恢复模式里最大的优点是只要能成功备份尾日志,就可以还原到日志备份内包含的任何时点("时点恢复&q ...

  3. mysql 开发基础系列18 存储过程和函数(下)

    1. 光标的使用(游标) 在存储过程和函数中可以使用光标对结果集进行循环的处理,光标使用包括光标的声明,open ,fetch,close. 下面在存储过程中使用一个光标, 这个举例中光标里的逻辑不重 ...

  4. 剑指offer-学习笔记

    前言:18/06/06开始学习,每个程序都会用C写一遍,因书中用C++举例,也会换种思路写,供学习和参考!!!很推荐这本书很不错,准备入手,一般不买实体书,都用电子书,因一般都看一遍,但这本会看很多遍 ...

  5. ReentrantLock 详解

    ReentrantLock的功能是实现代码段的并发访问控制,也就是通常意义上所说的锁,java中实现锁有两种方式,一种是本文所提的ReentrantLock,另一种是synchronized.Reen ...

  6. 线程池ThreadPool及Task调度死锁分析

    近1年,偶尔发生应用系统启动时某些操作超时的问题,特别在使用4核心Surface以后.笔记本和台式机比较少遇到,服务器则基本上没有遇到过. 这些年,我写的应用都有一个习惯,就是启动时异步做很多准备工作 ...

  7. Windows平台编译MySQL5.7源码

    https://blog.csdn.net/linjingke32/article/details/85111711

  8. Ajax 上传input type file 文件

    Html: <div class="attach-img"> <label><input type="file" id=" ...

  9. tcp关闭状态详解

    tcp关闭连接不区分客户端和服务端,哪一端口可以主动发起关闭连接请求.所以为了描述方便,描述中的“主动方”表示主动发起关闭连接一方,“被动方”表示被动关闭连接一方. 1. tcp关闭连接状态转换 上图 ...

  10. IPv6笔记

    单播地址包含的几种类型:1.AGUA地址:2000::到3FFF:FFFF:FFFF:FFFF:FFFF..... 一个接口可以拥有若干个AGUA地址2.Link-Local 地址:FE80::/10 ...