javascript的数据类型,运算符和流程控制

        javascript的概念         

javascript描述的是网页的行为。一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:
ECMAScript:JavaScript的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等。
DOM:指文档对象模型,操作网页上的元素的API。比如让盒子移动、变色、轮播图等。
BOM:操作浏览器部分功能的API。比如让浏览器自动滚动。

  1.javascript的引入方式 

1.Script标签内写代码
<script>
// 在这里写你的JS代码
</script>
2.引入额外的JS文件
<script src="myscript.js"></script>

   2.JavaScript的特点     

(1)简单易用:可以使用任何文本编辑工具编写,只需要浏览器就可以执行程序。
(2)解释执行(解释语言):事先不编译、逐行执行、无需进行严格的变量声明。
(3)基于对象:内置大量现成对象,编写少量程序可以完成目标

  3.JavaScript的注释:  

单行注释:// 我是注释
多行注释: /*多行注释1*/
sublime中,单行注释的快捷键是ctrl+/,多行注释的快捷键是ctrl+shift+/
JavaScript中的语句要以分号(;)为结束符。

    4.变量声明:    

 

1.在JavaScript中,永远都是用var来定义变量
2.JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头
3.一行可以声明多个变量.并且可以是不同类型.
var name="jerd",age=20,hobby="basketball";

5.JavaScript在网页中输出信息的写法:

1.弹出警告框:alert("")
2.控制台输出:console.log("") console表示“控制台”,log表示“输出”。
3.用户输入:prompt()语句
<script type="text/javascript">
    var a = prompt('今天是什么天气?');
    console.log(a);
</script>
上方代码中,用户输入的内容,将被传递到变量 a 里面。
prompt()语句中,用户不管输入什么内容,都是字符串。
alert和prompt的区别:
alert("从前有座山");                //直接使用,不需要变量
var a = prompt("请输入一个数字");   // 必须用一个变量,来接收用户输入的值

    javascript的数据类型   


   数字类型Number  

Number:JavaScript不区分整型和浮点型,就只有一种数字类型
var a = 123;
//typeof 检查当前变量是什么数据类型
console.log(typeof a)
NaN,表示不是一个数字,该属性用于指示某个值不是数字。
parseInt("123")  // 返回123
parseInt("ABC")   //NaN

  布尔类型Boolean  

区别于Python,true和false都是小写。
var a = true;
var b = false;
""(空字符串)、0、null、undefined、NaN都是false。

   字符串String  

var a = "Hello"等同于 var a=String("hello") 不加引号会报错
如果值为数字,可不加引号
 字符串拼接:
ar a = "Hello"
var b = "world;
var c = a + b; #用+作字符串的连接
console.log(c);  // 得到Helloworld

var name="伊拉克
var am = '美军';
// 字符串拼接
var str = "2003年3月20日,"+name+"战争爆发,以美军为主的联合部队仅用20多天就击溃了萨达姆的军队。这是继十多年前的海湾战争后,"+am+"又一次取得的大规模压倒性军事胜利。"
var fullStr = str;
console.log(fullStr)
#2003年3月20日,伊拉克战争爆发,以美军为主的联合部队仅用20多天就击溃了萨达姆的军队。这是继十多年前的海湾战争后,美军又一次取得的大规模压倒性军事胜利。
常用方法:
1.length 返回长度
a=" jerd jerry ";
console.log(a.length);#12
2..trim()移除两端空白。不能自定义
console.log(a.trim()); #jerd jerry
.trimLeft()去除左边的空白 console.log(a.trimLeft());
.trimRight()   移除右边的空白
3..charAt(n)返回第n个字符
console.log(a.charAt(2)); #e
4..concat(value, ...)  拼接 
console.log(a.concat(888)) # jerd jerry 888
5..indexOf(substring, start)子序列位置。显示字符串中第一个元素所在的位置
console.log(a.indexOf("je")); #1
console.log(a.indexOf("jerd")); #1
6..substring(from, to) 根据索引获取子序列
console.log(a.substring(0,6)); #jerd
 ##第二个参数为负数时,相当于显示第一个参数之前的索引对应元素
console.log(a.substring(0,-1)); #为空
console.log(a.substring(5,-1)); #jerd
7..slice(start, end)   切片
# console.log(a.slice(0,6));#jerd 
console.log(a.slice(0,-1)); #jerd jerry
# console.log(a.slice(5,-1));#jerry
c.slice(3,1); ""
8..toLowerCase()小写 toUpperCase()   大写
# console.log(a.toUpperCase(5,-1));JERD JERRY
9..split(delimiter, limit)分割
c=" jerry jerd ";
c.split(" "); ["", "jerry", "jerd", ""]
如果设定切割个数,则只显示分割处之前的元素
console.log(a.split(" ",1)); #[""]
console.log(a.split(" ",2));#["", "jerd"]
注意substring和slice的区别:
两者的相同点:
如果start等于end,返回空字符串
如果stop参数省略,则取到字符串末
substirng()的特点:
如果 start > stop ,start和stop将被交换
如果参数是负数或者不是数字,将会被0替换
slice()的特点:
如果 start > stop 不会交换两者。值为空
如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)

  null和undefined   

null:
var c1 = null;//空对象. object
console.log(c1) #null
console.log(typeof c1) #object
#undefined
undefined
var d1  //表示变量未定义
console.log(typeof d1)
null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有函数无明确的返回值时,返回的也是undefined。
null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。

   类型查询   

typeof "abc"  // "string" #字符串类型
typeof true  // "boolean" #布尔类型
typeof 123 // "number" #数字类型
var a  console.log(typeof a) //undefined - 如果变量是 Undefined 类型的
object - 如果变量是一种引用类型或 Null类型的(数组也是此类型)
typeof null  // "object"
a=[11,12,14];
console.log(typeof a); #object
typeof是一个一元运算符(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。

  类型转换  

1.Number ----->> String
隐式转换:
var n1 = 123;
var n2 = '456';
var n3 = n1+n2;
console.log(n3) 123456
console.log(typeof n3) //string
强制类型转换String(),toString()
var a=123
var b=String(a)
console.log(typeof b) #string
console.log(a.toString())
2.String ----->>Number
Number(str)和parseInt(str)
1.var a="123";
var b=Numner(a)
typeof b; //"number"
2.字符串中有非数字元素时,值为NaN
var c="1234nhjk";
var d=Number(c);
d;  //NaN
typeof d; //"number"
3.parseInt()可以解析一个字符串有非数字元素时自动舍去 并且返回一个整数
e=parseInt(c)  //1234
var  stringNum = '789.123wadjhkd';
console.log(parseInt(stringNum)) //789
console.log(parseFloat(stringNum)); //789.123
3.任何数据类型都可以转换为boolean类型
console.log(Boolean(变量))

   javascript的运算符    

1.算数运算符

+ - * / % ++ --

2.赋值运算符

= += -= *= /=

3.比较运算符

> >= < <= != == === !==
==只比较值,不比较类型
===值和类型都相等
console.log( 2>"1"); #true
console.log( 2>"ab");#false
1 == “1// true
1 === "1"  // false

4.逻辑运算符

&& 相当于and
|| or
! not

     javascript的流程控制    

  if-else  

if (a>6){
console.log("The ending is good");
}else {
console.log("The ending is bad");
}
# The ending is bad

  if else-if else  

if (a>6) {
console.log("The ending is good");
}else if(a>4) {
console.log("The ending is just soso")}else {
console.log("The ending is bad");
  }
 # The ending is just soso

switch case

var a=5;
switch(a) {
    case 0:console.log("The ending is C");
    break;
    case 1:console.log("The ending is B");
    break;
case 5:console.log("The ending is A");
    break;
    default:console.log("The ending is bad");
}
#The ending is A

逻辑与&&、逻辑或||在if中的使用

if(sum>400 && math>90){
    console.log("A")
}
if(sum>400 || math>90){
    console.log("B")
}

   for  

for (var i=0;i<10;i++) {
  console.log(i);
}
用for(b in li) b为索引,并不是具体的值
var b;
li=[1,2,3];
for(b in li){
console.log(li[b]);
}

  while  

var i = 0;
while (i < 10) {
  console.log(i);
  i++;
}

三元运算

var a = 1;
var b = 2;
var c = a > b ? a : b #如果结果为真,就执行a 否则执行b

 

posted @ 2018-06-14 19:34  JERD  阅读(348)  评论(0编辑  收藏  举报