JavaScript基础学习笔记

这篇教程详细介绍了JavaScript的基础知识,包括它的用途、如何插入和引用JS、在HTML中的位置、语句和符号的使用、注释、变量、条件语句(if...else)、函数定义、输出内容、消息对话框、DOM操作、数组、流程控制、事件以及内置对象。JavaScript是Web开发的重要工具,用于实现动态效果和交互,如改变HTML内容、响应用户操作等。
摘要由CSDN通过智能技术生成

学习教程:

https://www.imooc.com/learn/36
https://www.imooc.com/learn/10

为什么学习JavaScript

  1. 所有主流浏览器都支持JavaScript。
  2. 目前,全世界大部分网页都使用JavaScript。
  3. 它可以让网页呈现各种动态效果。
  4. 做为一个Web开发师,如果你想提供漂亮的网页、令用户满意的上网体验,JavaScript是必不可少的工具。

如何插入JS

使用<script>标签在HTML网页中插入JavaScript代码。注意, <script>标签要成对出现,并把JavaScript代码写在<script></script>之间。
<script type="text/javascript">表示在<script></script>之间的是文本类型(text),javascript是为了告诉浏览器里面的文本是属于JavaScript语言。

引用JS外部文件

JS文件不能直接运行,需嵌入到HTML文件中执行,我们需在HTML中添加如下代码:

<script src="script.js"></script>

JS在页面中的位置

我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分。
放在head部分:
最常用的方式是在页面中head部分放置script元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分。
放在body部分:
JavaScript代码在网页读取到该语句的时候就会执行。
注意: javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后顺序的,所以前面的script就先被执行。比如进行页面显示初始化的js必须放在head里面,因为初始化都要求提前进行(如给页面body设置css等);而如果是通过事件调用执行的function那么对位置没什么要求的。

JavaScript-认识语句和符号

javaScript语句是发给浏览器的命令。这些命令的作用是告诉浏览器要做的事情。
一行的结束就被认定为语句的结束,通常在结尾加上一个分号";"来表示语句的结束。
注意:

  1. “;”分号要在英文状态下输入,同样,JS中的代码和符号都要在英文状态下输入。
  2. 虽然分号“;”也可以不写,但我们要养成编程的好习惯,记得在语句末尾写上分号。

JavaScript注释

我们为了方便阅读,注释内容一般放到需要解释语句的结尾处或周围。

  • 单行注释,在注释内容前加符号 “//”。
  • 多行注释以"/“开始,以”/"结束。

什么是变量

定义变量使用关键字var,语法如下:

var 变量名
  • 变量名可以任意取名,但要遵循命名规则:
    1.变量必须使用字母、下划线()或者美元符($)开始。
    2.然后可以使用任意多个英文字母、数字、下划线(
    )或者美元符($)组成。
    3.不能使用JavaScript关键词与JavaScript保留字。
  • 变量要先声明再赋值
  • 变量可以重复赋值

注意:

  1. 在JS中区分大小写,如变量mychar与myChar是不一样的,表示是两个变量。
  2. 变量虽然也可以不声明,直接使用,但不规范,需要先声明,后使用。

判断语句(if…else):
if…else语句是在指定的条件成立时执行代码,在条件不成立时执行else后的代码。

语法:
if(条件)
{ 条件成立时执行的代码 }
else
{ 条件不成立时执行的代码 }

什么是函数

函数是完成某个特定功能的一组语句。如没有函数,完成任务可能需要五行、十行、甚至更多的代码。这时我们就可以把完成特定功能的代码块放到一个函数里,直接调用这个函数,就省重复输入大量代码的麻烦。
如何定义一个函数呢?基本语法如下:

function 函数名()
{
     函数代码;
}

说明:

  1. function定义函数的关键字。
  2. "函数名"你为函数取的名字。
  3. "函数代码"替换为完成特定功能的代码。

输出内容(document.write)

document.write() 可用于直接向 HTML 输出流写内容。简单的说就是直接在网页中输出内容。

  • 第一种:输出内容用"“括起,直接输出”"号内的内容。
    document.write(“I love JavaScript!”);
  • 第二种:通过变量,输出内容
    document.write(mystr);
  • 第三种:输出多项内容,内容之间用+号连接。
    document.write(mystr+“I love JavaScript”);
  • 第四种:输出HTML标签,并起作用,标签使用"“括起来。
    document.write(mystr+”<br>");

警告(alert 消息对话框)

语法:

alert(字符串或变量);  

注意:

  1. 在点击对话框"确定"按钮前,不能进行任何其它操作。
  2. 消息对话框通常可以用于调试程序。
  3. alert输出内容,可以是字符串或变量,与document.write 相似。

确认(confirm 消息对话框)

  • 语法:
confirm(str);
  • 参数说明:
    str:在消息对话框中要显示的文本
    返回值: Boolean值

  • 返回值:
    当用户点击"确定"按钮时,返回true
    当用户点击"取消"按钮时,返回false

提问(prompt 消息对话框)

prompt弹出消息对话框,通常用于询问一些需要与用户交互的信息。弹出消息对话框(包含一个确定按钮、取消按钮与一个文本输入框)。

  • 语法:
prompt(str1, str2);
  • 参数说明:
    str1: 要显示在消息对话框中的文本,不可修改
    str2:文本框中的内容,可以修改

  • 返回值:
    点击确定按钮,文本框中的内容将作为函数返回值
    点击取消按钮,将返回null

打开新窗口(window.open)

open() 方法可以查找一个已经存在或者新建的浏览器窗口。
语法:

window.open([URL], [窗口名称], [参数字符串])

参数说明:

URL:可选参数,在窗口中要显示网页的网址或路径。如果省略这个参数,或者它的值是空字符串,那么窗口就不显示任何文档。
窗口名称:可选参数,被打开窗口的名称。
1.该名称由字母、数字和下划线字符组成。
2."_top"、"_blank"、"_self"具有特殊意义的名称。
_blank:在新窗口显示目标网页
_self:在当前窗口显示目标网页
_top:框架网页中在上部窗口中显示目标网页
3.相同 name 的窗口只能创建一个,要想创建多个窗口则 name 不能相同。
4.name 不能包含有空格。
参数字符串:可选参数,设置窗口参数,各参数用逗号隔开。

无菜单,无工具栏,无状态栏,有滚动条窗口:

<script type="text/javascript"> window.open('http://www.xx.com','_blank','width=300,height=200,menubar=no,toolbar=no, status=no,scrollbars=yes')
</script>

关闭窗口(window.close)

close()关闭窗口

用法:

window.close();   //关闭本窗口
或
<窗口对象>.close();   //关闭指定的窗口

例如,看不到该窗口:

mywin=window.open('http://www.imooc.com'); 
   mywin.close();

认识DOM

文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM 将HTML文档呈现为带有元素、属性和文本的树结构(节点树)。
将HTML代码分解为DOM节点层次图:
在这里插入图片描述
HTML文档可以说由节点构成的集合,三种常见的DOM节点:

  1. 元素节点:上图中<html>、<body>、<p>等都是元素节点,即标签。
  2. 文本节点:向用户展示的内容,如<li>...</li>中的JavaScript、DOM、CSS等文本。
  3. 属性节点:元素属性,如a标签的链接属性href="http://www.xxx.com"

通过ID获取元素

网页由标签将信息组织起来,而标签的id属性值是唯一的。

语法:

 document.getElementById("id") 

结果:null或[object HTMLParagraphElement]
注:获取的元素是一个对象,如想对元素进行操作,我们要通过它的属性或方法。

innerHTML 属性

innerHTML 属性用于获取或替换 HTML 元素的内容。

语法:

Object.innerHTML

1.Object是获取的元素对象,如通过document.getElementById(“ID”)获取的元素。
2.注意书写,innerHTML区分大小写。

改变 HTML 样式

HTML DOM 允许 JavaScript 改变 HTML 元素的样式。
语法:

Object.style.property=new style;

基本属性表(property):
在这里插入图片描述
注意:该表只是一小部分CSS样式属性,其它样式也可以通过该方法设置和修改。

显示和隐藏(display属性)

网页中经常会看到显示和隐藏的效果,可通过display属性来设置。

语法:

Object.style.display = value

value的取值:

  • none 此元素不会被显示(即隐藏)
  • block 此元素将显示为块级元素
    取消设置:Object.style=" "

控制类名(className 属性)

className 属性设置或返回元素的class 属性。

语法:

object.className = classname

作用:
1.获取元素的class 属性
2. 为网页内的某个元素指定一个css样式来更改该元素的外观

变量命名

1.必须以字母、下划线或美元符号开头,后面可以跟字母、下划线、美元符号和数字。
2.变量名区分大小写,如:A与a是两个不同变量。
3.不允许使用JavaScript关键字和保留字做变量名。
在这里插入图片描述
声明变量:

声明变量语法: var 变量名;   
var num1,mun2 ; // 声明多个变量

注意:变量也可以不声明,直接使用,但为了规范,需要先声明,后使用。

操作符

操作符是用于在JavaScript中指定一定动作的符号。
JavaScript中还有很多这样的操作符,例如,算术操作符(+、-、*、/等),比较操作符(<、>、>=、<=等),逻辑操作符(&&、||、!)。
注意: “=” 操作符是赋值,不是等于。
"+"操作符 除了做算术运算还可以做字符串的拼接。
自加一“++”;自减一“–”

操作符优先级:
操作符之间的优先级(高到低):

  • 算术操作符 → 比较操作符 → 逻辑操作符 → "="赋值符号
  • 如果同级的运算是按从左到右次序进行,多层括号由里向外。
  • 如果我们要改变运算顺序,需添加括号的方法来改变优先级
数组

创建数组语法:
var myarray=new Array();
我们创建数组的同时,还可以为数组指定长度,长度可任意指定:
var myarray= new Array(8);
注意:
1.创建的新数组是空数组,没有值,如输出,则显示undefined。
2.虽然创建数组时,指定了长度,但实际上数组都是变长的,也就是说即使指定了长度为8,仍然可以将元素存储在规定长度以外。
数组赋值:myarray[0] = 1;
var myarray = new Array(66,80,90,77,59);//创建数组同时赋值
var myarray = [66,80,90,77,59];//直接输入一个数组(称 “字面量数组”)

只需使用下一个未用的索引,任何时刻可以不断向数组增加新元素:
myarray[5]=88; //使用一个新索引,为数组增加一个新元素
myarray.length; //获得数组myarray的长度
注意:因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1。
同时,JavaScript数组的length属性是可变的,这一点需要特别注意。
arr.length=10; //增大数组的长度

一维数组的表示: myarray[ ]
二维数组的表示: myarray[][]
注意: 二维数组的两个维度的索引值也是从0开始,两个维度的最后一个索引值为长度-1。

流程控制
  • 多重判断(if …else嵌套语句)
if(条件1)
{ 条件1成立时执行的代码}
else  if(条件2)
{ 条件2成立时执行的代码}
...
else  if(条件n)
{ 条件n成立时执行的代码}
else
{ 条件1、2至n不成立时执行的代码}
  • 多种选择(Switch语句)
switch(表达式)
{
case值1:
  执行代码块 1
  break;
case值2:
  执行代码块 2
  break;
...
case值n:
  执行代码块 n
  break;
default:
  与 case值1 、 case值2...case值n 不同时执行的代码
}

Switch必须赋初始值,值与每个case值匹配。满足执行该 case 后的所有语句,并用break语句来阻止运行下一个case。如所有case值都不匹配,执行default后的语句。

  • for循环
for(初始化变量;循环条件;循环迭代)
{     
    循环语句 
 }
  • while循环
while(判断条件)
{
    循环语句
 }
  • Do…while循环
do
{
    循环语句
 }
while(判断条件)

do while结构的基本原理和while结构是基本相同的,但是它保证循环体至少被执行一次。因为它是先执行代码,后判断条件,如果条件为真,继续循环。
在while、for、do…while、while循环中使用break语句退出当前循环,直接执行后面的代码。
continue的作用是仅仅跳过本次循环,而整个循环体继续执行。

函数

  • 函数定义
function  函数名( )
{
     函数体;
}
  • 函数调用
第一种情况:在<script>标签内调用。

  <script type="text/javascript">
    function add2()
    {
         sum = 1 + 1;
         alert(sum);
    }
  add2();//调用函数,直接写函数名。
</SCRIPT>
第二种情况:在HTML文件中调用,如通过点击按钮后调用定义好的函数。

<html>
<head>
<script type="text/javascript">
   function add2()
   {
         sum = 5 + 6;
         alert(sum);
   }
</script>
</head>
<body>
<form>
<input type="button" value="click it" onclick="add2()">  //按钮,onclick点击事件,直接写函数名
</form>
</body>
</html>

函数的参数和返回值:

function add2(x,y)
{
   sum = x + y;
   return sum; //返回函数值,return后面的值叫做返回值。
}

事件

JavaScript 创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。

比如说,当用户单击按钮或者提交表单数据时,就发生一个鼠标单击(onclick)事件,需要浏览器做出处理,返回给用户一个结果。

主要事件表:
在这里插入图片描述

鼠标单击事件( onclick )

onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件。同时onclick事件调用的程序块就会被执行,通常与按钮一起使用。
注意: 在网页中,如使用事件,就在该元素中设置事件属性。

<script type="text/javascript">
  function openwin(){
     window.open('http://www.imooc.com','_blank','height=600,width=400,top=100,toolbar=no,left=0,menubar=no,scrollbars=no,status=no');}
</script>
</head>
<body>
  <form>
    <input name="点击我" type="button" value="点击提交" onclick="openwin()"/>
  </form>
</body>
鼠标经过事件(onmouseover)

鼠标经过事件,当鼠标移到一个对象上时,该对象就触发onmouseover事件,并执行onmouseover事件调用的程序。

鼠标移开事件(onmouseout)

鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序。

光标聚焦事件(onfocus)

当网页中的对象获得聚点时,执行onfocus调用的程序就会被执行。
例如:当将光标移到文本框内时,即焦点在文本框内,触发onfocus 事件,并调用函数。

失焦事件(onblur)

onblur事件与onfocus是相对事件,当光标离开当前获得聚焦对象的时候,触发onblur事件,同时执行被调用的程序。

内容选中事件(onselect)

选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。

文本框内容改变事件(onchange)

通过改变文本框的内容来触发onchange事件,同时执行被调用的程序。

加载事件(onload)

事件会在页面加载完成后,立即发生,同时执行被调用的程序。
注意:1. 加载页面时,触发onload事件,事件写在标签内。

卸载事件(onunload)

当用户退出页面时(页面关闭、页面刷新等),触发onUnload事件,同时执行被调用的程序。
注意:不同浏览器对onunload事件支持不同。

document.getElementById( id名 ).value 获取或设置 id名的值

JavaScript的内置对象

  • 什么是对象
    JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。
    对象的属性:反映该对象某些特定的性质的,如:字符串的长度、图像的长宽等;
    对象的方法:能够在对象上执行的动作。例如,表单的“提交”(Submit),时间的“获取”(getYear)等;
    JavaScript 提供多个内建对象,比如 String、Date、Array 等等,使用对象前先定义,如下使用数组对象:
  var objectName =new Array();//使用new关键字定义对象
或者
  var objectName =[];

访问对象属性的语法:
objectName.propertyName
如使用 Array 对象的 length 属性来获得数组的长度:

myarray.length;//访问数组长度length属性

访问对象的方法:
objectName.methodName()
如使用string 对象的 toUpperCase() 方法来将文本转换为大写:
var request=mystr.toUpperCase(); //使用字符串对象方法

Date 日期对象

日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒)。
定义一个时间对象 :

var Udate=new Date(); 

注意:使用关键字new,Date()的首字母必须大写。
使 Udate 成为日期对象,并且已有初始值:当前时间(当前电脑系统时间)。
如果要自定义初始值,可以用以下方法:
var d = new Date(2012, 10, 1); //2012年10月1日
var d = new Date(‘Oct 1, 2012’); //2012年10月1日

我们最好使用下面介绍的“方法”来严格定义时间。
访问方法语法:“<日期对象>.<方法>”
Date对象中处理时间和日期的常用方法:
在这里插入图片描述
注意:不同浏览器, mydate.setFullYear(81)结果不同,年份被设定为 0081或81两种情况。
注意:
1.结果格式依次为:星期、月、日、年、时、分、秒、时区。(火狐浏览器)
2. 不同浏览器,时间格式有差异。

getDay() 返回星期,返回的是0-6的数字,0 表示星期天。如果要返回相对应“星期”,需要通过数组来完成:
var mydate=new Date();//定义日期对象
var weekday=[“星期日”,“星期一”,“星期二”,“星期三”,“星期四”,“星期五”,“星期六”];
//定义数组对象,给每个数组项赋值
var mynum=mydate.getDay();//返回值存储在变量mynum中
然后通过下标去取。
get/setTime() 返回/设置时间,单位毫秒数,计算从 1970 年 1 月 1 日零时到日期对象所指的日期的毫秒数。

  • String 字符串对象
    访问字符串对象的属性length:
    stringObject.length; 返回该字符串的长度。
    访问字符串对象的方法:mystr.toUpperCase();
    返回指定位置的字符:
    charAt() 方法可返回指定位置的字符。返回的字符是长度为 1 的字符串。

语法:
stringObject.charAt(index)
注意:
1.字符串中第一个字符的下标是 0。最后一个字符的下标为字符串长度减一(string.length-1)。
2.如果参数 index 不在 0 与 string.length-1 之间,该方法将返回一个空字符串。
3. 一个空格也算一个字符。

返回指定的字符串首次出现的位置:
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

  1. 语法
    stringObject.indexOf(substring, startpos)
    该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 substring。
  2. 可选参数,从stringObject的startpos位置开始查找substring,如果没有此参数将从stringObject的开始位置查找。
  3. 如果找到一个 substring,则返回 substring 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

注意:
1.indexOf() 方法区分大小写。
2.如果要检索的字符串值没有出现,则该方法返回 -1。

字符串分割split()
知识讲解:

split() 方法将字符串分割为字符串数组,并返回此数组。

语法:
stringObject.split(separator,limit) limit是分割的次数,指定次数则返回的子字符不会多于这个次数,不指定则不限制次数。
注意:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

提取字符串substring()
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
语法:
stringObject.substring(startPos,stopPos)
注意:

  1. 返回的内容是从 start开始(包含start位置的字符)到 stop-1 处的所有字符,其长度为 stop 减start。
  2. 如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
  3. 如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。

提取指定数目的字符substr()
substr() 方法从字符串中提取从 startPos位置开始的指定数目的字符串。

语法:
stringObject.substr(startPos,length)
注意:如果参数startPos是负数,从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
如果startPos为负数且绝对值大于字符串长度,startPos为0。

Math对象

注意:Math 对象是一个固有的对象,无需创建它,直接把 Math 作为对象使用就可以调用其所有属性和方法。这是它与Date,String对象的区别。

Math 对象属性:

Math 对象方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值