JavaScript基础

JS基础

JS的作用
1、操作HTML元素
2、相应用户的操作
3、处理发送的数据
等等

如何插入JavaScript代码

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

规范:

  • 变量必须使用字母、下划线(_)或者美元符($)开始。

  • 然后可以使用任意多个英文字母、数字、下划线(_)或者美元符($)组成。

  • 不能使用JavaScript关键词与JavaScript保留字。

  • JS严格区分大小写

  • 变量虽然也可以不声明,直接使用,但不规范,需要先声明,后使用。

不允许使用JavaScript关键字和保留字做变量名


image.png

如果浏览器不支持script的话则进行

<noscript>
      您的浏览器不支持JavaScript
</noscript>  
不过基本用不上...

JavaScript-什么是函数

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

//基本语法如下
function 函数名()
{
     函数代码;
}

JS如何获取Html元素:

1.通过ID获取(常用方法)
document .getElementById('id') 
2.点击事件:
document .getElementById('id') .onClick=
function(){
     //响应的内容
    alert('alert是弹窗的意思');
};

不同位置的JS代码:
如果script标签在body上面,是获取不到id的,所以要添加一段语句

 //页面在加载完成之后,执行代码,一个页面只能出现一次
 window.onload=function(){
} 

JavaScript-输出内容(document.write)

<script type="text/javascript">
  var mystr="hello";
  document.write(mystr+"<br>");//输出hello后,输出一个换行符
  document.write("JavaScript");
</script>

看一个完整例子:(点击粉色框出现弹框alert)

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Tit11e</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
            font-family: "Microsoft Himalaya";
        }
        a {
            text-decoration: none;
        }
        a img {
            display: block;
            border: none;
        }
        li {
            list-style: none;
        }
        #box {
            width: 100px;
            height: 100px;
            background: pink;
            margin: 50px auto;
        }
    </style>
    <script>
        window.onload=function(){
            document.getElementById("box").onclick=function () {
                alert("hello ~~");
            }
        };
    </script>
</head>
<body>
<div id="box"></div>
<script>
    document.getElementById("box").onclick=function () {
        alert("hello word!");
    }
</script>
</body>
</html>

JavaScript事件

image.png

图片来自http://www.w3school.com.cn/jsref/jsref_events.asp

JavaScript 系统弹窗

1、alert("提示弹窗");
2、confirm("判断弹窗")
3、prompt("输入弹窗")
系统弹窗是不可以给样式的。

JavaScript-打开/关闭新窗口(window.open/window.close)

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

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

参数字符串:可选参数,设置窗口参数,各参数用逗号隔开。

参数表:


image.png

关闭窗口:
window.close(); //关闭本窗口

改变内容的方式

1、innerHTML

//效果是鼠标移动到这个box中 改变这个标签的内容为:内容
        document.getElementById("box").onmouseover=function () {
            document.getElementById("box").innerHTML='内容';
        }

2、innerText
使用方法同innerHTML,区别是innerHTML可以识别内容中的标签,而innerText只能识别纯文本。

定义变量 -> var

定义变量的规则:
字母、数字、"_"、"$" 不能以数字开头。

var box = document.getElementById('box');
   box.onmouseover = function () {
       document.getElementById("box").innerHTML = '内容1';
   }

操作样式

操作JS修改的元素样式的时候一般都是都是标签样式,标签样式的优先级是最高的。

    var box = document.getElementById('box');
    box.onmouseover = function () {
       this.innerHTML = '内容1';
       this.style.background="#cc00ff"
    }

//改变 <p> 元素的样式,将颜色改为红色,字号改为40,背景颜色改为红:
<p id="pcon">Hello World!</p>
<script>
   var mychar = document.getElementById("pcon");
   mychar.style.color="red";
   mychar.style.fontSize="20";
   mychar.style.backgroundColor ="red";
</script>

//object.removeAttribute('style'); 代表清空当前对象的所有样式

属性表如下:


显示和隐藏(display属性)

语法:
Object.style.display = value
value取值:
none : 此元素不会被显示(隐藏此元素)
block : 此元素将显示为块级元素(显示此元素)

控制类名(className 属性)

语法:
object.className = classname
作用:
1.获取元素的class 属性

  1. 为网页内的某个元素指定一个css样式来更改该元素的外观

Demo

<style>
    body{ font-size:16px;}
    .one{
        border:1px solid #eee;
        width:230px;
        height:50px;
        background:#ccc;
        color:red;
    }
    .two{
        border:1px solid #ccc;
        width:230px;
        height:50px;
        background:#9CF;
        color:blue;
    }
    </style>
</head>
<body>
    <p id="p1" > JavaScript使网页显示动态效果并实现与用户交互功能。</p>
    <input type="button" value="添加样式" onclick="add()"/>
    <p id="p2" class="one">JavaScript使网页显示动态效果并实现与用户交互功能。</p>
    <input type="button" value="更改外观" onclick="modify()"/>

    <script type="text/javascript">
       function add(){
          var p1 = document.getElementById("p1");
          p1.className='body'
       }
       function modify(){
          var p2 = document.getElementById("p2");
          p2.className='two'
       }
    </script>
</body>
</html>

JS运算优先级:保持先后顺序(操作符优先级)

算术操作符 → 比较操作符 → 逻辑操作符 → "="赋值符号
如果同级的运算是按从左到右次序进行,多层括号由里向外。

JS的事件

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

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

事件表:


image.png

JS的对象

Date 日期对象

日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒)。
定义一个时间对象 :
var Udate=new Date();
注意:使用关键字new ,Date()的首字母必须大写。
使 Udate 成为日期对象,并且已有初始值:当前时间(当前电脑系统时间)。

日期的访问方法和语法:
“<日期对象>.<方法>”


image.png

String 字符串对象

  1. stringObject.length; 返回该字符串的长度。
  2. toUpperCase() 方法来将字符串小写字母转换为大写:
  3. toLowerCase() 方法将字符串转为小写;
  4. stringObject.charAt(index);返回指定位置的字符
  5. split()分割字符串 将字符串分割为字符串数组,并返回此数组。
  6. substring() 方法用于提取字符串中介于两个指定下标之间的字符。stringObject.substring(startPos,stopPos)
    注意:
    (1) 返回的内容是从 start开始(包含start位置的字符)到 stop-1 处的所有字符,其长度为 stop 减start。
    (2) 如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
    (3) 如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
  7. 提取指定数目的字符substr()
    注意:如果参数startPos是负数,从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
  8. Math对象,提供对数据的数学计算。
Math对象属性
Math对象的方法

Array 数组对象

  1. 定义了一个空数组:
var  数组名= new Array();
  1. 定义时指定有n个空元素的数组:
var 数组名 =new Array(n);

3.定义数组的时候,直接初始化数据:

var  数组名 = [<元素1>, <元素2>, <元素3>...];

我们定义myArray数组,并赋值,代码如下:

var myArray = [2, 8, 6]; 
数组方法

Window对象

描述

JavaScript计时器

计时器方法
setTimeout(代码,延迟时间);
clearTimeout(id_of_setTimeout); id则是setTimeout()返回的id

History 对象

history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能。

注意:从窗口被打开的那一刻开始记录,每个浏览器窗口、每个标签页乃至每个框架,都有自己的history对象与特定的window对象关联。
语法:window.history.[属性|方法]
属性:
length:返回浏览器历史列表中的URL数量
方法:
back()加载history列表中的前一个URL
forward() 加载history列表中的下一个URL
go(number) 加载某一个具体的页面. number参数:1前一个跟forward()等价 0当前页面 -1后一个back()等价

Location对象

location用于获取或设置窗体的URL,并且可以用于解析URL。
语法:location.[属性|方法]

属性图示

对象属性

对象方法

Navigator对象

Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本。

对象属性

screen对象

screen对象用于获取用户的屏幕信息。
语法:window.screen.属性

image.png

DOM !!

文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM 将HTML文档呈现为带有元素、属性和文本的树结构(节点树)

HTML文档可以说由节点构成的集合,DOM节点有:

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


    节点属性.png

    遍历节点树
DOM操作

getElementsByName()方法

返回带有指定名称的节点对象的集合。
语法:
document.getElementsByName(name)
getElementById() 方法不同的是,通过元素的 name 属性查询元素,而不是通过 id 属性。

注意:

  1. 因为文档中的 name 属性可能不唯一,所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。
  2. 和数组类似也有length属性,可以和访问数组一样的方法来访问,从0开始。

getElementsByTagName()方法

返回带有指定标签名的节点对象的集合。返回元素的顺序是它们在文档中的顺序。
语法:
document.getElementsByTagName(Tagname)
说明:

  1. Tagname是标签的名称,如p、a、img等标签名。
  2. 和数组类似也有length属性,可以和访问数组一样的方法来访问,所以从0开始。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容