超级完整的JS学习笔记整理2020版本

本文是一份全面的JavaScript学习笔记,涵盖了从基本的script标签、数据类型、运算符到流程控制、DOM操作等内容。深入讲解了JavaScript的核心概念,包括变量、数据类型转换、比较运算符、循环语句等,还介绍了BOM对象和DOM文档对象模型。通过实例解析了JavaScript在网页交互、表单验证等方面的应用,是初学者和进阶者的重要参考资料。
摘要由CSDN通过智能技术生成

一、javaScript是什么?
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
二、javaScript能干什么
可以写一些效果,网页增加色彩
表单验证

三、javaScript历史

  • 开篇
    大概在 1992 年,一家称作 Nombas 的公司开发了一种叫做 C 减减(C-minus-minus,简称 Cmm)的嵌入式脚本语言。
  • 创始
    Netscape 发明了 JavaScript在1995年
  • 三足鼎立
    微软进军,复制了一个javascript名称为:JScript
  • 标准化
    1997 年的全新脚本语言。ECMAScript
一、script标签

类型(type):text/javascript
路径(scr):script.js
字符集(charset):utf-8

<script type="text/javascript" src="script.js" charset="utf-8"></script>

Java书写格式:
方式一:

<script type="text/javascript">
js代码
方式二:
<script type="text/javascript" src="script.js"></script>
Script.js:
alert("易驰web前端")
二、alert 、document.write 、console.log

1》alert() ===》系统弹出框

alert("易驰web前端")

2》document.write() ===》文档输入内容
****文档的输出

<script>
    document.write("易驰js")
    document.write("<hr />")
    document.write("11111111111111111")
</script>

3》console.log() ===》控制台中的console显示内容

<script>
    console.log("今天来易驰学习js了")
</script>

效果在浏览器中查看:

语法构成

1》区分大小写
ECMAScript中的一切,变量,函数和操作符都是严格区分大小写
name和Name或者NAME
2》标识符
1.第一个字符必须是字母、下划线或者$
2.其他字符可以是数字、字母、下划线、$
n11、KaTeX parse error: Expected group after '_' at position 9: a、_a a_̲
3》注释符
1. 单行注释 : //
2. 多行注释 : /**/
二、关键字和保留字
1. ECMAScript关键字:关键字是保留的,不能用作变量名或函数名
2.ECMAScript保留字:保留字在某种意思上是为将来的关键字而保留的单词。因此保留字不能被用作变量名或函数名。

变量

ECMAScript的变量是松散类型的,所谓的松散类型就是用来保存任何类型的数据。
定义变量时要使用var操作符 ,后面跟一个变量名称(变量名就是标识符)。
如果是汉字必须要加上引号(单双都可以)
声明变量:
var name = “易驰”
声明多个变量
var name = “易驰”,
age = 18,
sex = “男”;

分号

每个语句的结尾都要加上;证明语句已经结束
一、js中的数据类型
1》5种简单的
字符串(String)
加引号,引起来的都是字符串(单双引号都可以)
数字(Number)
整数、小数、负数
布尔(Boolean)
true >真(对)
false
>假(错)
Undefined(未定义)
一个变量没有赋值就是undefined
Null(空)
****一种特殊的Object类型
2》1种复杂(对象)
Object
***********typeof 检测类型的
typeof返回的结果是字符串
例如:typeof(str) | typeof str

js中的数据类型转换
1》把字符串转换为数字类型
	a>Number()
//把字符串转换为       ---》【数字类型】
var str = "易驰web前端全套课程";   //字符串
var num = Number( str );
alert(num);//NaN
alert(typeof num);

b>parseInt()

//parseInt()
var str = "123.1";
var num = parseInt(str);
alert(typeof num);  // "number"
alert(num);

c>parseFloat()

parseFloat()
var str = "123";
var num = parseFloat(str);
alert(typeof num);  // "number"
alert(num);

2》把字符串转换为布尔类型
a》Boolean
***补充
NaN:属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。

一、js中的运算符:操作数据值
运算符包括:一元运算符(一目运算符),布尔运算符,算术运算符,三元运算符,赋值运算符,位运算符…
1》算术运算符
+

var num = 10;
var str = 20;
console.log(num/str);

1>如果是字符串类型和数字类型相加,最后返回的结果是连接操作,数字类型会隐式转换为字符串类型
-

var num1 = 8;
var num2 = 3;
console.log(num1%num2);

1》如果是字符串类型和数字类型相减,最后返回的结果是正常减法,字符串类型会隐式转换为数字类型
*

var num = 10;  //数字类型
var str = "20";  //字符串类型
var cont = num+str;     // 这里做了一个隐式的转换,把num转换为了string
console.log(cont);  // 这里的加号就是连接了   1020
console.log(typeof cont); //最后返回的结果是string

1》如果是字符串类型和数字类型相乘,最后返回的结果是正常乘,字符串类型会隐式转换为数字类型
/

var num1 = 30;     //数字类型
var str1 = "20";  //字符串类型
var count = num1-str1;  //这里的str1原来是字符串类型, 在这里呢隐式转换为了number
console.log(count);
console.log(typeof count);  //number

1》如果是字符串类型和数字类型相除,最后返回的结果是正常除,字符串类型会隐式转换为数字类型
%

var num2 = 5;
var str2 = "3";
var count = num2 % str2;
console.log(typeof count );

1》如果是字符串类型和数字类型求模,最后返回的结果是正常求模,字符串类型会隐式转换为数字类型

一、js中的赋值运算符
=

var num = 1;
alert(num);

+= : x+=y ====> x=x+y

var num1 = 1;
var num2 = 2;
num1+=num2;  // num1 = num1+num2      num1 = 1+2
alert(num1);
字符串和数值相加默认将转为字符串连接:
var num7 = 7;   //alert(typeof  num7);   // "number"
var str8 = "8";
num7+=str8;  //  num7 = 7+"8"
alert(num7);

-= : x-=y ====> x=x-y

var num3 = 3;
var num4 = 4;
num3-=num4 ;  // num3 = 3-4   ===> -1
alert(num3);
数值和字符串相减,默认将字符串转为数值:
var num9 = 9;
var str1 = "1";
num9-=str1;  //  num9 = 9-"1" 
alert(num9);

1 * = : x*=y ====> x=x*y

var num5 = 5;
var num6 = 6;
num5*=num6;   //  num5 = 5*6   (30)
alert(num5);

/= : x/=y ====> x=x/y

var num7 = 5;
var num8 = 6;
num7/=num8;   //  num5 = 5/6   (0.8333)
alert(num7);

%= : x%=y ====> x=x%y(求余)

var num7 = 5;
var num8 = 6;
num7%=num8;   //  num5 = 5%6   5
alert(num7);
js中的比较运算符
== :只比较值
var num1 = 3;
var num2 = 4;
document.write(  num1 == num2  ); //false

数值和字符串比较:

var num1 = 3;  //数字类型
var num2 = "3"; //字符串类型
document.write(   num1 == num2  );

// 因为num1可以比喻为3块钱 num2比喻为:我在纸上写了一个数字3
// 而num1和num2不是一个数据类型,根本就不是一个概念 ,但是结果是true??? 因为js是弱变量类型所以结果是true
===:比较值还比较类型

var num1 = 3;  //数字类型
var num2 = "3"; //字符串类型
document.write(  num1 === num2 );   //false
!= :非等(不等于)
var num1 = 6;
var num2 = 5;
document.write(   num1!=num2 );  // num1不等于num2
>
var num1 = 3;
var num2 = 4;
alert(  num1 > num2 );
< 
var num1 = 3;
var num2 = 4;
alert(  num1 < num2 );
>=
<=
var num3 = 7;
var num4 = 7;
alert(  num3<=num4 );   // 7>=7              num3>num4      num3==num4
比较运算符返回结果:布尔值(false,true)

一、js中的一元运算符(一目运算符)
i++:先赋值,再自加1

var num1 = 3;
var num2 = 4;
num1=num2++;
// 1>把num2的值赋值给num1   ===>num1 = num2
// 2>num2自加1             ===>num2+1
document.write(  num1+"======>"+num2);  // num1:4             num2:5

i–:先赋值,再自减1

var num1 = 3;
var num2 = 4;
num1 = num2--;
//1>num1=num2
//2>num2-1
alert( num1 +"====>" +num2);  // num1===>4      num2 ===>3

++i:先自加1 ,再赋值

var num1 = 5;
var num2 = 8;
num1=++num2;
//1> num2+1
//2> num2赋值给num1
alert(  num1 +"===>"+ num2);   // 9,9*/

–i : 先自减1,再赋值

var num6 = 12;
var num7 = 20;
num6=--num7;
//1>num7-1
//2>num7赋值给num6;
alert(  num6 +"===>"+num7 );    //19,19

//如果是–i这种情况结果是19,19 , 如果是i–这种情况结果是 20,19

JS中的二元运算符(二目运算符)[逻辑运算符]

&&(与):格式:表达式1 &&表达式2…
1>表达式1和表达式2有一个为false,整体的结果为false

var a = 10;
var b = 20;
var c = 30;
alert(  a>b && b>c   ); //  10 > 20 && 20 > 30
or
var a = 10;
var b = 20;
var c = 30;
alert(  a<b && b<c   ); //  10 < 20 && 20 > 30

||(或):格式:表达式1 || 表达式2
1>表达式1和表达式2有一个为true,整体的结果为true

var a = 10;
var b = 20;
var c = 30;
alert(  a>b || b<c  ); //  10<20 || 20>30
//表达式1为true  表达式2为false    整体结果为true
//表达式1为false  表达式2为true    整体结果为true

!(非) : 取反

var bool = true;
alert(!bool);
JS中的三元运算符(三目运算符)

格式:
条件?执行结果1(true):执行结果2(false)

var a = 10;
var b = 20;
// a<b?alert("对"):alert("错");
a>b?alert("对"):alert("错");

一、JS中的流程控制语句(if语句)
格式:
if(条件1){
如果条件1成立,执行这里代码
}else{
如果条件不成立,则执行这里代码
}

var num1 = 10;
var num2 = 20;
if(num1<num2){
     //  10 < 20
    alert("您说的对");
}else{
   
    alert("您可能不对");
}

格式:
if(条件1){
如果条件1成立,执行这里代码
}else if(条件2){
如果条件2成立,执行这里代码
}else if(条件3){
如果条件3成立,执行这里代码
}…
else{
如果条件1到条件n都不成立,执行这里代码
}

var str = "晴天";
if(str=="阴天"){
   
    alert("阴天");
}else if(str=="晴天"){
   
    alert("11111111111111");
}else if(str=="雪天"){
   
    alert("雪天");
}else{
   
    alert("雾霾");
}
   嵌套格式:
			if(条件1){
				if(条件){
					如果条件成立,执行这里代码
				}
			}else{
				如果条件1不成立,执行这里代码
			}
		var num = 10;
var str = "您好";
if( num == 10 ){
   
    if(str=="您好"){
   
        alert("您好啊啊啊啊啊");
    }
}else{
   
    alert(2222);
}		
流程控制例子:

 橙汁
橙子===》装瓶====》瓶子广告===》卖
橙子===》瓶子广告===》装瓶====》卖
一、js中的系统输入框
prompt()
isNaN():
如果isNaN(10)写的是数字返回结果为false
如果isNaN(“哈哈”)写的不是数字返回结果为true

var str = prompt("判断您的成绩是否符合要求");
if(isNaN(str)){
   
    alert("必须输入数字");
}else if(str==100){
   
    alert("满分");
}else if(str>=60){
   
    alert("及格");
}else if(str<=59){
   
    alert("不及格");
}
JS中流程控制语句(switch语句)
	格式:
			switch(条件表达式){
				case 常量1:
					执行;
					break;
				case 常量2:
					执行;
					break;
				case 常量3:
					执行;
					break;
				......
				default:
					执行
			}
var str = "晴天";
switch (str){
   
    case "阴天":
        alert("阴天");
        break;
    case "晴天":
        alert("1111111111111111111");
        break;
    case "雨天":
        alert("雨天");
        break;
    default:
        alert("都不满足执行:default");
}
JS中的循环语句(for循环)

循环语句:在有限的条件内,反复不断的执行一些事
for循环格式:
for(起始条件;终止条件;步长值){
循环体;
}

for(var i=1;i<=100;i++){
   
    document.write(i+"<br />");
}

比喻:

(起始条件)        (终止条件)			(步长值)
发车时间			末班车时间				发车周期
5:00					23:00						每5分钟一趟车
5:05					23:00						每5分钟一趟车
5:10					23:00						每5分钟一趟车


22:50 23:00 每5分钟一趟车
22:55 23:00 每5分钟一趟车
23:00 23:00 每5分钟一趟车
23:05(没有车)

for(var i=0;i<3;i++){
   
    document.write(i);
}
alert(i);
JS中的for循环语句嵌套

格式:
for(起始条件; 终止条件;步长值){
for(起始条件;终止条件;步长值){
循环体;
}
循环体;
}

for(var i=1;i<=100;i++){
   
    if(i%10==0){
   
        document.write(i+"<br />");
    }
}
or
for(var i=0;i<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值