javascript:基础
javascript的博文笔记根据菜鸟教程的笔记整理完成,以及W3c的javascript的教程
JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。
JavaScript 是脚本语言
JavaScript 是一种轻量级的编程语言。
JavaScript 是可插入 HTML 页面的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
JavaScript 很容易学习。
javaScript:直接写入HTML输出流
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p> JavaScript 能够直接写入 HTML 输出流中: </p> <script> document.write("<h1>这是一个标题</h1>"); document.write("<p>这是一个段落。</p>"); </script> </body> </html>
效果图:
数据类型:
1. 原始数据类型(基本数据类型):
1. number:数字。 整数/小数/NaN(not a number 一个不是数字的数字类型)
2. string:字符串。 字符串 "abc" "a" 'abc'
3. boolean: true和false
4. null:一个对象为空的占位符
5. undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
2. 引用数据类型:对象
JavaScript:变量
* 变量:一小块存储数据的内存空间
* Java语言是强类型语言,而JavaScript是弱类型语言。
* 强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据
* 弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据。
* 语法:
* var 变量名 = 初始化值;
* typeof运算符:获取变量的类型。
* 注:null运算后得到的是object
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>变量</title> <script > //定义变量 /* var a = 3; alert(a); a = "abc"; alert(a);*/ //定义number类型 var num = 1; var num2 = 1.2; var num3 = NaN; //输出到页面上 document.write(num+"<br>"); document.write(num2+"<br>"); document.write(num3+"<br>"); //定义string类型 var str = "abc"; var str2 = 'edf'; document.write(str+"<br>"); document.write(str2+"<br>"); //定义boolean var flag = true; document.write(flag+"<br>"); // 定义null,undefined var obj = null; var obj2 = undefined; var obj3 ; document.write(obj+"<br>"); document.write(obj2+"<br>"); document.write(obj3+"<br>"); </script> </head> <body> </body>
typedef
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>变量</title> <script > //定义变量 /* var a = 3; alert(a); a = "abc"; alert(a);*/ //定义number类型 var num = 1; var num2 = 1.2; var num3 = NaN; //输出到页面上 document.write(num+"---"+typeof(num)+"<br>"); document.write(num2+"---"+typeof(num2)+"<br>"); document.write(num3+"---"+typeof(num3)+"<br>"); //定义string类型 var str = "abc"; var str2 = 'edf'; document.write(str+"---"+typeof(str)+"<br>"); document.write(str2+"---"+typeof(str2)+"<br>"); //定义boolean var flag = true; document.write(flag+"---"+typeof(flag)+"<br>"); // 定义null,undefined var obj = null; var obj2 = undefined; var obj3 ; document.write(obj+"---"+typeof(obj)+"<br>"); document.write(obj2+"---"+typeof(obj2)+"<br>"); document.write(obj3+"---"+typeof(obj3)+"<br>"); </script> </head> <body> </body> </html>
javaScript的输出
JavaScript 显示数据
JavaScript 可以通过不同的方式来输出数据:
- 使用 window.alert() 弹出警告框。
- 使用 document.write() 方法将内容写到 HTML 文档中。
- 使用 innerHTML 写入到 HTML 元素。
- 使用 console.log() 写入到浏览器的控制台。
JavaScript 对象
var car = {type:"Fiat", model:500, color:"white"};
在以上实例中,3 个值 ("Fiat", 500, "white") 赋予变量 car。
在以上实例中,3 个变量 (type, model, color) 赋予变量 car。
一元运算符:
++,-- , +(正号)
* ++ --: 自增(自减)
* ++(--) 在前,先自增(自减),再运算
* ++(--) 在后,先运算,再自增(自减)
* +(-):正负号
* 注意:在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换
* 其他类型转number:
* string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
* boolean转number:true转为1,false转为0
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>一元运算符</title> <script> /* 1. 一元运算符:只有一个运算数的运算符 ++,-- , +(正号) -(负号) * ++ --: 自增(自减) * ++(--) 在前,先自增(自减),再运算 * ++(--) 在后,先运算,再自增(自减) * +(-):正负号 * 注意:在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换 * 其他类型转number: * string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字) * boolean转number:true转为1,false转为0 */ var num = 3; var a = ++ num ; document.write(num);// 4 document.write(a); // 3 4 document.write("<hr>"); var b = +"123abc"; document.write(typeof (b)); document.write(b + 1); document.write("<hr>"); var flag = + true; var f2 = + false; document.write(typeof (flag) + "<br>");//number document.write(flag + "<br>");// 1 document.write(f2 + "<br>");// 0 </script> </head> <body> </body>
比较运算符
> < >= <= == ===(全等于)
* 比较方式
1. 类型相同:直接比较
* 字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。
2. 类型不同:先进行类型转换,再比较
* ===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>比较运算符</title> <script> /* * 比较运算符: * * 比较方式 * 1. 类型相同:直接比较 * * 字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。 * 2. 类型不同:先进行类型转换,再比较 * * ===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false */ document.write((3 > 4) +"<br>"); document.write(("abc" < "acd") +"<br>"); document.write(("123" == 123) +"<br>"); document.write(("123" === 123) +"<br>"); </script> </head> <body> </body>
逻辑运算符
&& || !
* 其他类型转boolean:
1. number:0或NaN为假,其他为真
2. string:除了空字符串(""),其他都是true
3. null&undefined:都是false
4. 对象:所有对象都为tr
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>比较运算符</title> <script> /* * 逻辑运算符: * &&: 与(短路) * ||: 或 (短路) * !:非 * * 其他类型转boolean: * 1. number:0或NaN为假,其他为真 * 2. string:除了空字符串(""),其他都是true * 3. null&undefined:都是false * 4. 对象:所有对象都为true * * */ var flag = true; document.write(flag+"<br>"); document.write(!flag+"<br>"); document.write("<hr>"); //number var num = 3; var num2 = 0; var num3 = NaN; document.write(!!num+"<br>"); document.write(!!num2+"<br>"); document.write(!!num3+"<br>"); /*while(1){ }*/ document.write("<hr>"); //string var str1 = "abc"; var str2 = ""; document.write(!!str1+"<br>"); document.write(!!str2+"<br>"); document.write("<hr>"); // null & undefined var obj = null; var obj2; document.write(!!obj+"<br>"); document.write(!!obj2+"<br>"); document.write("<hr>"); // null & undefined var date = new Date(); document.write(!!date+"<br>"); document.write("<hr>"); obj = "123"; if(obj != null && obj.length > 0){//防止空指针异常 alert(123); } //js中可以这样定义,简化书写。 if(obj){//防止空指针异常 alert(111); } </script> </head> <body> </body> </html>
For语句:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>for语句</title> <script> //1 ~ 100 求和 5050 var sum = 0; for (var i = 1; i <= 100; i ++){ sum += i; } alert(sum); </script> </head> <body> </body> </html>
Switch语句:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>switch语句</title> <script> var a; switch (a){ case 1: alert("number"); break; case "abc": alert("string"); break; case true: alert("true"); break; case null: alert("null"); break; case undefined: alert("undefined"); break; } </script> </head> <body> </body> </html
while语句:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>while语句</title> <script> //1 ~ 100 求和 5050 var sum = 0; var num = 1; while(num <= 100){ sum += num; num ++; } alert(sum); </script> </head> <body> </body> </html>
Array:数组对象
1. 创建:
1. var arr = new Array(元素列表);
2. var arr = new Array(默认长度);
3. var arr = [元素列表];
2. 方法
join(参数):将数组中的元素按照指定的分隔符拼接为字符串
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
3. 属性
length:数组的长度
4. 特点:
1. JS中,数组元素的类型可变的。
2. JS中,数组长度可变的。
Date:日期对象
1. 创建:
var date = new Date();
2. 方法:
toLocaleString():返回当前date对象对应的时间本地字符串格式
getTime():获取毫秒值。返回当前如期对象描述的时间到1970年1月1日零点的毫秒值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Date对象</title> <script > /* Date:日期对象 1. 创建: var date = new Date(); 2. 方法: toLocaleString():返回当前date对象对应的时间本地字符串格式 getTime():获取毫秒值。返回当前如期对象描述的时间到1970年1月1日零点的毫秒值差 * */ var date = new Date(); document.write(date + "<br>"); document.write(date.toLocaleString() + "<br>"); document.write(date.getTime() + "<br>"); </script> </head> <body> </body> </html>
Math:数学对象
1. 创建:
* 特点:Math对象不用创建,直接使用。 Math.方法名();
2. 方法:
random():返回 0 ~ 1 之间的随机数。 含0不含1
ceil(x):对数进行上舍入。
floor(x):对数进行下舍入。
round(x):把数四舍五入为最接近的整数。
3. 属性:
PI
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Math对象</title> <script > /* Math:数学对象 1. 创建: * 特点:Math对象不用创建,直接使用。 Math.方法名(); 2. 方法: random():返回 0 ~ 1 之间的随机数。 含0不含1 ceil(x):对数进行上舍入。 floor(x):对数进行下舍入。 round(x):把数四舍五入为最接近的整数。 3. 属性: PI * */ document.write(Math.PI +"<br>"); document.write(Math.random() +"<br>"); document.write(Math.round(3.14) +"<br>"); document.write(Math.ceil(3.14) +"<br>"); document.write(Math.floor(3.14) +"<br>"); /** * 取 1~100之间的随机整数 * 1. Math.random()产生随机数:范围 [0,1)小数 * 2. 乘以 100 --> [0,99.9999] 小数 * 3. 舍弃小数部分 :floor --> [0,99] 整数 * 4. +1 -->[0,99] 整数 [1,100] * * */ var number = Math.floor((Math.random() * 100)) + 1; document.write(number); </script> </head> <body> </body>