JavaScript基础

javascript 简介:

JavaScript 是因特网上最流行的脚本语言,它存在于全世界所有 Web 浏览器中,能够增强用户与 Web 站点和 Web 应用程序之间的交互。

jvavscript的组成:

一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:

DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API)。

DOM 将把整个页面规划成由节点层级构成的文档。HTML 或 XML 页面的每个部分都是一个节点的衍生物

DOM 通过创建树来表示文档,从而使开发者对文档的内容和结构具有空前的控制力。用 DOM API 可以轻松地删除、添加和替换节点。

 

JavaScript基础

1.javascript的导入方式

直接编写:

<script>

  alert('hello gu')

</script>

导入文件:

<script src='hello.js'></script>

 

2.1   js的变量

  1.声明变量时,不用什么变量类型,全部使用var关键字;

  var a;

  a=3;

  2.一行可以声明多个变量,并且可以是不容类型

  var name='gu';age='12';job='lect';

  3. 声明变量不用var,就是全局变量

  4,命名规则,首字符必须是字母,下划线或者$符号,区分大小写;

  Camel 标记法 首字母是小写的,接下来的字母都以大写字符开头。

    例如: var myTestValue = 0, mySecondValue = "hi";

  Pascal 标记法 首字母是大写的,接下来的字母都以大写字符开头。

  例如: Var MyTestValue = 0, MySecondValue = "hi";

  匈牙利类型标记法 在以 Pascal 标记法命名的变量前附加一个小写字母(或小写字母序列),  说明该变量的类型。

  例如,i 表示整数,s 表示字符串,如下所示“ Var iMyTestValue = 0, sMySecondValue = "hi";

  2.2 常量和 标志符

  常量:直接出现在程序中出现的数据值

  标志符:  

  1.不以数字开头的字母,数字,下划线_ 美元符号组成

  2.常用于函数,变量等名称,

  3.JavaScript语言中代表的特定能够含义的词为保留字,不允许再定义为标志符

  

2.3 js的数据类型

  umber --数值

  boolean--布尔值

  string--字符串

  undefined---undefined

  null --null

2.3.1 数字类型number

  var num=10;表示整数10

  var num=1.1;表示浮点数1.1

  var num=.1;表示0.1

  var num=10.0;解析成10

  var num=10.;小数点后面没有数字,解析成10

  不区分整形数值和浮点型数值;

  都采用64位浮点格式存储;

  

整数;

     在JavaScript中10进制的整数由数字的序列组成
           精确表达的范围是
-9007199254740992 (-253) 到 9007199254740992 (253)
           超出范围的整数,精确度将受影响

浮点数;

  使用小数点记录数据 ;3.4

  使用指数记录数据;4.3e23=4.3*10的23次 方

16进制和8进制的表达:

  16进制数据前面加上0x,由0-9和aA-F16个字符组成,

  8进制前面加上0;0-78个字符组成

2.3.2 字符串类型(string)

  由Unicode字符,数字,标点符号组成的序列;

  由单引号和双引号括起来;

2.3.3布尔类型(Boolean)

  只有2个值True和false,代表1和0,运算中True=1,false=0

  可以看做on/off,yes.no ,1/0对应True/false

2.3.4 null和undefined类型

  undefined类型只有一个值,既undefined,当声明的变量未初始化时,该变量的默认值就是undefined.

  函数没有返回值,返回的值也是undefined.

  null类型

  只有一个值的类型,undefined是null派生出来的,null是表示尚未存在的对象

  如果函数或方法返回的是对象,找不到该对象,返回null

2.4 运算符

  算术运算符: +   -   *    /   %   ++   --

  var x=10;

  x+=1;是x的自增1操作

  x++;先赋值在计算

  ++x;先计算后赋值

  - 出了表示减号还可以表示负号

  + 除了表示jiafa,还可以用于字符串连接

 

  比较运算符: >   >=    <    <=    !=   ==    ===    !==

  === 是完全等于,如果字符串是数字可以和数字比较等值

  console.log(2==='2')

 

  逻辑运算符: &&  逻辑与     ||  逻辑或     ! 逻辑非

  var name='egon';

  var gender='male';

  if (name=='egon' && gender=='males'){

    console.log('success!')  }

 

   赋值运算符: =   +=    -=     *=    /=

 

  字符串运算符: + 连接,两边操作数有一个或两个是字符串就做连接运算

  NaN

  var d="gu";

  d=+d;

  alert(d);NaN是属于number类型的一个特殊值,当遇到字符串转成数字无效时,

就会得到一个NaN数据

  alert(typeof(d));

2..4.2 比较运算符

  >   >=    <    <=    !=   ==    ===    !==

  if (2>1){

  console.log("条件成立!")

  等号==与非等号!==的同类运算符是全等号===和非全等号!==,

  只是在检测相等性前,不执行类型装换.

  }

  举例:

var bResult = "Blue" < "alpha";
alert(bResult); //输出 true  
在上面的例子中,字符串 "Blue" 小于 "alpha",因为字母 B 的字符代码是 66,字母 a 的字符代码是 97。

比较数字和字符串

另一种棘手的状况发生在比较两个字符串形式的数字时,比如:

var bResult = "25" < "3";
alert(bResult); //输出 "true"
上面这段代码比较的是字符串 "25" 和 "3"。两个运算数都是字符串,所以比较的是它们的字符代码("2" 的字符代码是 50,"3" 的字符代码是 51)。

不过,如果把某个运算数该为数字,那么结果就有趣了:

var bResult = "25" < 3;
alert(bResult); //输出 "false"

这里,字符串 "25" 将被转换成数字 25,然后与数字 3 进行比较,结果不出所料。

总结:

比较运算符两侧如果一个是数字类型,一个是其他类型,会将其类型转换成数字类型.
比较运算符两侧如果都是字符串类型,比较的是最高位的asc码,如果最高位相等,继续取第二位比较.

  console.log(4 && 3);//3 && 与操作2个值都为非零,取最后的值
  console.log(0 && 3);//0 && 与操作2个值有1个是零,得到0,
  console.log(0 || 3);//3 || 或操作,2个值中有个0 ,取非0 的那个值
  console.log(2 || 3);//2 || 或操作,2个值中都是非0,取第一个值

 

 

注意2:

等性运算符:执行类型转换的规则如下:

如果一个运算数是 Boolean 值,在检查相等性之前,把它转换成数字值。false 转换成 0,true 为 1。 
如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。 
如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。 
如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。 
在比较时,该运算符还遵守下列规则:

值 null 和 undefined 相等。 
在检查相等性时,不能把 null 和 undefined 转换成其他值。 
如果某个运算数是 NaN,等号将返回 false,非等号将返回 true。 
如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一对象,那么等号返回 true,否则两个运算数不等。 

2.5 流程控制

  顺序结构(从上向下顺序执行)

  分支结构

  循环结构

2.5.1顺序结构

  <script>

    console.log('1');

    console.log("2');

    console.log('9');

  </script>

2.5.2分支结构

  if (表达式){

  语句1;

.....  

}

else{

语句2;

}

功能说明:如果表达式的值为True,则执行语句1,否则执行语句2

var x=(new Date()).getDay();//获取今天的星期值,0 为星期天
var y;
if ( (x==6) || (x==0)){
y="周末";
}
else{
y="工作日";
}
console.log(y)

if - elif - else 结构:

var score=window.prompt('您的分数:');
if(score>90){
ret="优秀";
}
else if(score>80){
ret="";
}
else if(score>60){
ret="及格";
}
else{
ret="不及格";
}
console.log(ret)

switch-case结构

switch基本格式
switch(表达式){
  case 值1:语句1;break;
  case 值2:语句2;break;
  default:语句4;
}
举例:
   var z =2;
switch (z) {
case 1:y = "星期一";break;
case 2:y = '星期二';break;
case 3:y = "星期三";break;
default: y = '未定义';
}
// alert(z)
console.log(z)
2.5.2循环结构

语法规则:
for(初始表达式;条件表达式;自增或自减)
{
执行语句.....
}
for循环的另一种形式:
for(变量 in 数组或对象){
  执行语句.....
}

while循环
while(条件){
语句1;
.....
}

var i=1;
while (i<=7){
document.write("<H"+i+">hello</H "+i+">");
document.write("<br>");
i++;
}//循环输出h1 到h7的字体大小
功能与for类型,当条件成立执行大括号内的语句,否则跳出循环,同样支持continue与break

2.5.3异常处理

try{

//这段代码从长上往下运行,其中任何一个语句抛出异常就结束运行

}

catch(e){

//try 代码抛出异常,catch代码就被执行,e是局部变量, 用来执行error对象或者其他抛出的对象

}

finally{

//无论try 代码是否有异常抛出(甚至try代码中有return语句),finally代码都会执行

注:主动抛出异常 throw Error('xxx')

 

posted @ 2017-08-07 19:53  谷子的  阅读(132)  评论(0编辑  收藏  举报