JavaScript

1.1概念

JavaScript是一门客户端脚本语言,运行在客户端浏览器中的,每一个浏览器都有JavaScript的解析引擎.
脚本语言:不须要翻译,间接就能够被浏览器解析执行了
性能:能够来加强用户和html页面的交互过程,能够来管制jtml元素,让页面有一些动静的成果,加强用户的体验.

1.2JavaScript发展史

  1. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验,命名为:C--,起初更名为:ScriptEase
  2. 1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。起初,请来SUN公司的专家,批改LiveScript,命名为JavaScript
  3. 1996年,微软剽窃JavaScript开发出JScript语言
  4. 1997年,ECMA(欧洲计算机制造商协会),制订出客户端脚本语言的规范:ECMAScript,就是对立了所有客户端脚本语言的编码方式。
  5. JavaScript = ECMAScript + JavaScript本人特有的货色(BOM+DOM)

2.根本语法

1.与html联合形式

(1)外部JS:定义<script>,标签体内容就是js代码(2)内部JS:定义<script>,通过sec属性引入内部的js文件留神:<script>能够定义在html页面的任何中央.然而定义的地位会影响执行程序; <script>能够定义多个.

2.1正文

1.单行正文: //正文内容
2.多行正文: / 正文内容 /

2.2数据类型

原始数据类型(根本数据类型)

(1)数值类型(number):在JS中,所有的数值在底层都是浮点型,然而在解决和显示的过程中会主动的和整型进行转换.
例如:2.4+3.6=6
非凡值:Infinity(无穷大) / -Infinity(负无穷大) / NaN(非数字)
(2)字符串类型(String):在JS中,字符串类型属于根本数据类型,字符串常量能够应用单引号或者应用双引号引起来.例如:

var v1 = "hello JS";var v2 = 'hello Js';

另外,JS中字符串类型有对象的包装对象(String),在须要时会主动的和包装对象进行转换.

var v1 = "Hello JS"; //根本数据类型,Stringconsole.log( typeof v1 );//stringvar v2 = new String("Hello JS");//简单数据类型, objectcomsole.log( typeof v2 );//object//不论是根本数据类型v1,还是简单数据类型v2,都能够当做对象来用console.log( v1.valueOf() );//v1是根本数据类型,会转成对象,调用valueOf函数console.log( v2.valueOf() );

(3)布尔类型(boolean)
布尔类型的值有两个,别离为true和false
(4)undefined类型
undefined类型的值只有一个,就是undefined,示意变量未定义(但不是值变量没有申明),是指申明了变量,但没有为变量赋值,该变量的值就是undefined

/*1.undefined类型*/var x;alert( x ); //undefinedalert( y ); //抛异样

(5) null类型
null类型的值只有一个,就是null,示意空值.
能够作为函数的返回值,示意函数返回的是一个空的对象.
留神:null和undefined类型的变量是不能调用函数火属性的,会抛异样!

简单数据类型

次要指对象(JS的内置对象、自定义的对象、函数、数组)
(1)变量申明
变量:一小块存储数据的内存空间
Java语言是强类型语言,而JavaScript是弱类型语言.
强类型:在开拓变量存储空间时,定义了工夫未来存储的数据的数据类型.只能存储固定类型的数据
弱类型:在开拓变量类型空间时,补丁已空间未来的存储数据类型,能够寄存任意类型的数据
语法:var 变量名 = 初始化值;
typeof运算符:获取变量的类型
留神:null运算后失去的是object
JS中是通过var关键字申明变量,申明的变量是不辨别类型,能够指向任意的数据.例如:

var x = 100;x = "abc";x = true;x = [];x = function(){}x = new Object();x = {};

另外,JS中屡次申明同名的变量不会呈现语法错误,例如:

/*2.变量的定义**/var s = "Hello";//var s; s="hello";var s = 123; //var s; s = 123;alert( s );//123

JS是严格辨别大小写的!!!!!

JS运算符

JS和Java的运算符大致相同
(1)一元运算符:只有一个运算数的运算符
++(--) 在前,先自增(自减),再运算
++(--) 在后,先运算,再自增(自减)
+(-):正负号
留神:在JS中,如果运算数不是运算符所要求的类型,那么js引擎会主动的将运算数进行类型转换
其余类型转number:
String转numbner:依照字面值转换.如果字面值不是数字,则转化为NaN(不是数字的数字)
boolean转number:true转为1,false转为0
(2)算数运算符
+,-,*,/,%,++,--
(3)赋值运算符
=,+=,-=,*=,/=,%=
(4)比拟运算符
==,!=,>,>=,<,<=
比拟形式:
类型雷同:间接比拟

字符串:依照字典程序比拟。按位逐个比拟,直到得出大小为止。

类型不同:先进行类型转换,再比拟

===:全等于。在比拟之前,先判断类型,如果类型不一样,则间接返回false

(5)位运算符
& , |
(6)逻辑运算符
&& ,|| ( false && 表达式, true || 表达式 )
其余类型转boolean:
number:0或NaN为假,其余为真
string:除了空字符串(""),其余都是true
null&undefined:都是false
对象:所有对象都为true
(7)前置逻辑运算符
! (not)
(8)三元运算符
语法:表达式? 值1:值2;
判断表达式的值,如果是true则取值1,如果是false则取值2;
(9)流程管制语句

  1. if...else
  2. switch
  3. while
  4. do...while
  5. for

JS非凡语法:
1.语句以;结尾,如果一行只有一条语句则;能够省略,但不倡议省略
2.变量的定义应用var关键字,也能够不应用
用:定义的变量是局部变量
不必:定义的变量是全局变量(不倡议)

练习:99乘法表
<!DOCTYPE html><html lang="en"><head>   <meta charset="UTF-8">   <title>99乘法表</title>   <style>      td{         border: 1px solid;      }   </style>   <script>      document.write("<table  align='center'>");      //1.实现根本的for循环嵌套,展现乘法表 for (var i = 1; i <= 9 ; i++) {         document.write("<tr>");         for (var j = 1; j <=i ; j++) {            document.write("<td>");            //输入  1 * 1 = 1 document.write(i + " * " + j + " = " + ( i*j) +"&nbsp;&nbsp;&nbsp;");            document.write("</td>");         }         /*//输入换行 document.write("<br>");*/ document.write("</tr>");      }      //2.实现表格嵌套 document.write("</table>");   </script></head><body></body></html>