JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
1. JavaScript 是一种客户端脚本语言(脚本语言是一种轻量级的编程语言)。
2. JavaScript 通常被直接嵌入 HTML 页面。
3. JavaScript 是一种解释性语言(就是说,代码执行不进行预编译)。
特点:
1. 弱类型
2. 基于对象。(因为面向对象需要具有封装、继承、多态的特征)
<body> <input type="text" id="user" /> <input type="button" onclick="GETDATA();" value="点我"/> <script> function GETDATA() { var i = document.getElementById('user'); alert(i.value); } </script> </body>
在input框里输入用户名后,点击点我后浏览器窗口弹出刚刚输入的用户名
两种引用方式:
*1. 使用<script></script>标签:
属性:
charset(可选)字符集设置、
defer(可选执行顺序)值:defer、
language(已废除)、
src(可选)使用外部的js脚本文件
type(必选)类型:值:text/javascript
<script type="text/javascript"> <!-- javaScript语言 //--> </script>
2. 在html标签的事件中,超级链接里。
<button onclick="javaScript语言"></button> <a href="javascript:alert('aa');alert('bb')">点击</a>
3. 外部导入方式(推荐):
<script type="text/javascript" src="my.js"></script>
<head> <meta charset="UTF-8"> <title>Title</title> <!--第一种方式引用js文件--> <script src="commons.js"></script> <!--第二种方式直接写在html中--> <script> alert('James') </script> </head>
JavaScript的语法:
===========================================
1.区分大小写:变量名、函数名、运算符以及其他一切东西都是区分大小写的。
2.他和php一样属于弱类型语言。
3.每行结尾的分号可有可无。(js中的每条语句之间的分割符可以是回车换行也可以是";"分号(推荐))
4.脚本注释:
// 单行注释
/* 多行注释 */
5.括号表示代码块:{}
6.变量的定义:使用var关键字来声明。
变量的命名规范是:字母数字,$符和下划线构成,但是不可以以数字开始。区分大小写
变量名不可以使用关键字.
typeof函数获取一个变量的类型:
* undefined - 如果变量是 Undefined 类型的
* boolean - 如果变量是 Boolean 类型的
* number - 如果变量是 Number 类型的 (整数、浮点数)
* string - 如果变量是 String 类型的 (采用""、 '')
* object - 如果变量是一种引用类型或 Null 类型的 如:new Array()/ new String()...
funciton -- 函数类型
字符串记得要加引号
注:由于加载慢,script一般放在body的最下面
注释:单行//
多行/*..*/
循环方式:
for (var item in [11,22,33]){ console.log(item) } var arra = [11,22,33,3] for (var i=0;i<var.length;i=i++){ while(条件){ }
1、变量
JavaScript中变量的声明是一个非常容易出错的点,局部变量必须一个 var 开头,如果未使用var,则默认表示声明的是全局变量
<script type="text/javascript"> // 全局变量 name = 'James'; function func(){ // 局部变量 var age = 18; // 全局变量 gender = "男" } </script>
2、数字
JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值表示。
数据类型:
undefined 类型
null 类型(对象)
boolean 类型
number 类型
八进制数和十六进制数 012
浮点数
特殊的 Number 值
string 类型
bject引用类型
引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象。
Object 对象自身用处不大,不过在了解其他类之前,还是应该了解它。
因为 ECMAScript 中的 Object 对象与 Java 中的 java.lang.Object 相似,
ECMAScript 中的所有对象都由这个对象继承而来,Object 对象中的所有属性
和方法都会出现在其他对象中,所以理解了 Object 对象,就可以更好地理解其他对象。
<script type="text/javascript"> var a = 10; document.write(a+"数据类型是:"+typeof(a)+"<br/>"); var b = 1.23; document.write(b+"数据类型是:"+typeof(b)+"<br/>"); var c = "hello world"; document.write(c+"数据类型是:"+typeof(c)+"<br/>"); //var d=true; var d = false; document.write(d+"数据类型是:"+typeof(d)+"<br/>"); var e = [10,20,30]; //python教列表,js中叫数组 document.write(e +"数据类型是:"+typeof(e)+"<br/>"); var f = function(){} document.write(f +"数据类型是:"+typeof(f)+"<br/>"); var h = new String('int'); document.write(h +"数据类型是:"+typeof(h)+"<br/>"); var j = null; document.write(j +"数据类型是:"+typeof(j)+"<br/>"); document.write("数据类型是:"+typeof(abc)+"<br/>"); </script>
转换:
使用:Number()、parseInt() 和parseFloat() 做类型转换
Number()强转一个数值(包含整数和浮点数)。
- parseInt(..) 将某值转换成数字,不成功则NaN
- parseFloat(..) 将某值转换成浮点数,不成功则NaN
特殊值:
- NaN,非数字。可使用 isNaN(num) 来判断。
- Infinity,无穷大。可使用 isFinite(num) 来判断
<script type="text/javascript"> document.write("1234abc:"+parseInt("1234abc")+"<br/>"); document.write("1234abc123:"+parseInt("1234abc123")+"<br/>"); document.write("abc123:"+parseInt("abc123")+"<br/>");// NAN not a number document.write("空转成整数:"+parseInt("")+"<br/>"); document.write("0X12转成整数:"+parseInt("0X12")+"<br/>"); // 16进制的12转成10进制 18 document.write("1.6转成整数:"+parseInt("1.6")+"<br/>"); document.write("12.00abc:"+parseFloat("12.34abc")+"<br/>"); </script>
更多数值计算
1 常量 2 3 Math.E 4 常量e,自然对数的底数。 5 6 Math.LN10 7 10的自然对数。 8 9 Math.LN2 10 2的自然对数。 11 12 Math.LOG10E 13 以10为底的e的对数。 14 15 Math.LOG2E 16 以2为底的e的对数。 17 18 Math.PI 19 常量figs/U03C0.gif。 20 21 Math.SQRT1_2 22 2的平方根除以1。 23 24 Math.SQRT2 25 2的平方根。 26 27 静态函数 28 29 Math.abs( ) 30 计算绝对值。 31 32 Math.acos( ) 33 计算反余弦值。 34 35 Math.asin( ) 36 计算反正弦值。 37 38 Math.atan( ) 39 计算反正切值。 40 41 Math.atan2( ) 42 计算从X轴到一个点的角度。 43 44 Math.ceil( ) 45 对一个数上舍入。 46 47 Math.cos( ) 48 计算余弦值。 49 50 Math.exp( ) 51 计算e的指数。 52 53 Math.floor( ) 54 对一个数下舍人。 55 56 Math.log( ) 57 计算自然对数。 58 59 Math.max( ) 60 返回两个数中较大的一个。 61 62 Math.min( ) 63 返回两个数中较小的一个。 64 65 Math.pow( ) 66 计算xy。 67 68 Math.random( ) 69 计算一个随机数。 70 71 Math.round( ) 72 舍入为最接近的整数。 73 74 Math.sin( ) 75 计算正弦值。 76 77 Math.sqrt( ) 78 计算平方根。 79 80 Math.tan( ) 81 计算正切值。
3、字符串
字符串是由字符组成的数组,但在JavaScript中字符串是不可变的:可以访问字符串任意位置的文本,但是JavaScript并未提供修改已知字符串内容的方法
① charAt (输入索引位置获取字符)
>a = 'James' <"James" >a.charAt(1) <"a" >a.charAt(2) <"m" >a.charAt(3) <"e"
② substring (输入起始位置,结束位置获取字符)
1 >a = 'James' 2 <"James" 3 >a.substring(0,2) 4 <"Ja" 5 >a.substring(2,5) 6 <"mes"
③ lenght (获取当前字符串长度)
1 >a = 'James'; 2 <"James" 3 >a.concat('eric'); 4 <"Jameseric"
⑤ indexOf(子序列位置)
1 >a = 'James'; 2 <"James" 3 >a.indexOf('me'); 4 <2 5 >a.indexOf('es'); 6 <3
⑥ split (分割字符)
1 >a = 'JamesaJames'; 2 <"JamesaJames" 3 >a.split('a'); 4 <["J", "mes", "J", "mes"] 5 >a.split('a',1); 6 <["J"] 7 >a.split('a',3); 8 <["J", "mes", "J"]
4、布尔值
布尔类型仅包含真假,与Python不同的是其首字母小写。
- == 比较值相等
- != 不等于
- === 比较值和类型相等
- !=== 不等于
- || 或
- && 且
1 <script type="text/javascript"> 2 /*+ 加法运算 连接*/ 3 //document.write(1+2+"<br/>"); 4 //document.write(1+2+"20"+"<br/>"); 5 // //document.write("1"+2+20+"<br/>");//前面是字符串,后面就是连接 6 /*++ 自增 --自减*/ 7 var a = 10; 8 //var b = a++; //10 先把a给b 然后自增+1 9 //var c = a; 10 var c = ++a;// 11 先把a自增+1 然后赋值给 c 11 var d = --c; // 自减 12 document.write(d); 13 //=== 全等于 14 /*=赋值 ==等于 值相同 ===全等于 值和类型都相同*/ 15 /* var aa = 10; 16 var bb = "10"; 17 if(aa === bb){ 18 alert('是的,相等'); 19 }else{ 20 alert("不相等"); 21 }*/ 22 23 var m = 0; 24 var n = 2; 25 for(var i=1;i<=10;i++){ 26 m+=i; 27 n *=i; //2*1*2*3*4*5*6*7*8*9*10 28 } 29 alert("10的累加值"+m); 30 alert("10的累乘值"+n); 31 32 //a >>=1 a变量的每一个二进制位顺序右移1位 33 34 /*作业: 把笔记和代码敲一遍*/ 35 36 </script>