码迷,mamicode.com
首页 > Web开发 > 详细

js简单入门

时间:2020-03-22 17:51:20      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:基础   btn   浮点   结果   create   数据类型   空间   boolean   逻辑运算   

一、JavaScript简介

JavaScript语言主要是完成页面的数据验证。因此它运行在客户端,需要运行浏览器来解析执行javascript代码。

js是弱类型,也就是类型可变。比如,对于一个变量,它可以是整型,也可以是字符串。

特点:

  1. 交互性(它可以做信息的动态交互)
  2. 安全性(不允许直接访问本地硬盘)
  3. 跨平台性(只要是可以解释js的浏览器都可以执行,和平台无关)

二、基本知识(有编程基础可略过)

1)、输出语句

js有三种输出。

  1. alert():弹出一个警告框,将文本内容输出到警告框上
  2. document.write():向body中输出文本
  3. console.log():在控制台上输出文本。浏览器按F12检查元素,在控制台上可以看到输出的文本。

2)、js编写位置

1.可将js代码编写到标签的onclick属性中

<!--点击按钮会弹出弹窗-->
<button onclick="alert(‘标签onclick中的js代码‘)">点我</button>

2.将js代码写在超链接的href属性中,点击超链接,执行js代码

<a href="javascript:alert(‘超链接中的js代码‘);">点我</a>
<a href="javascript:;">点我</a>

3.写在script标签中,打开页面就执行

<script type="text/javascript">    
   alert("这是我的第一个js代码");
</script>

4.放在外部文件中,然后引入(推荐方式)

注意:一个script标签一旦引入外部js文件,就不能在其内部编写内部js代码,即使编写也会被忽略。如果需要,则在另一个script中编写。

<script type="text/javascript" src="js文件路径"></script>

3)、基本语法

1.单行注释

//单行注释

2.多行注释

/*
 *	这是多行注释
 */

3.js中严格区分大小写

4.js每条语句以分号结尾

5.js会忽略多个空格和换行

4)、字面量和变量

字面量:不可改变的值,比如:1 2 3 4 5。可以直接使用。

变量:用来保存字面量,变量的值可任意改变。方便对字面量的使用。

声明变量:在js中使用var关键字来声明一个变量

5)、标识符

在js中所有可以由我们自主命名的都可以称为标识符。

如:变量名、函数名、属性名。

命名规则:

  1. 标识符可以由字符、数字、_、$组成
  2. 标识符不能以数字开头
  3. 标识符不能是JS中的关键字或保留字
  4. 一般采用驼峰命名法
  5. js底层保存标识符实际上采用的是unicode编码(utf-8),所以理论上,所有的utf-8含有的内容都能作为标识符,包括中文,但不推荐。

三、数据类型

数据类型就是字面量的类型。js中一共有六种数据类型。String 、Number 、Boolean 、Null 、Undefined 、Object 。前五种是基本数据类型,object为引用数据类型。

1)、String 字符串

  • 用引号引起来的字面量
  • 使用双引号或单引号。对于字符串中有单引号或双引号的要用不同的引号包围
var str = ‘js:"hello"‘;
  • 字符串中可以使用\作为转义字符,表示一些特殊符号可以使用\进行转义
var str = "js:\"hello\"";

2)、Number 数值

  • js中的所有数值都是Number类型。包括整数和浮点数(小数)

  • 可以使用typeof检查一个变量的类型。

  • Number.MAX_VALUE表示数值型的最大值。当超过这个值,就变成了Infinity正无穷

  • NaN: not a number。将两个字符串进行算法运算时得到此值。+在字符串运算中是拼接字符串,不是算数加法.

  • String类型与Number相加仍做字符串拼接

3)、Boolean 布尔值

只有两个值true或false。用来做逻辑判断。

4)、Null 空值

null这个值专门用来表示一个为空的对象

5)、Undefined 未定义

所有js变量为赋予初始值的时候,默认值都是undefined

6)、Object 对象

四、运算符

1)、关系运算符

等于:== 简单的数字面值的比较

全等于:=== 除了字面值的比较,还有数据类型的比较

2)、逻辑运算

且运算: &&

或运算: ||

取反运算:!

在js中,所有的变量,都可以作为一个boolean类型使用。0、null、undefined、空串都默认为false

五、数组

数组定义方式

var 数组名=[];//空数组
var 数组名=[true,1,"abc"];//定义并赋值

js中的数组里面的值的类型可以不同

js语言的中数组,只要我们通过数组下标赋值,那么最大的下标值,就会自动给数组赋值

var arr=[]
arr[0]=1;
alert(arr.length); //1
arr[2]=3;
alert(arr.length); //3

六、函数

1)、函数的定义:

1.使用function关键字来定义函数

function 函数名(参数列表){
    函数体;
}

2.第二种定义方式

var 函数名= function(参数列表){
    函数体;
}

参数不用指定类型。若函数有返回值,直接return即可。

js中不允许函数重载,对函数的重载会覆盖上一个函数。

2)、函数的arguments隐形参数(只在function函数内)

就是在function函数中不需要定义,但却可以直接用来获取所有参数的变量,叫作隐形参数。

与java中可变长参数(Object...args)一样

function fun() {
    alert(arguments[0]);
    alert(arguments[1]);
    alert(arguments[2]);
}
fun(1, ‘2‘, true);

七、自定义对象

1)、Object形式的自定义对象

对象的定义

var 对象名 = new Object(); //对象实例
对象名.属性名= 值;		//定义一个属性
对象名.函数名 = function(){}  //定义一个函数

对象的访问

对象名.属性名|函数名()

例:

var obj = new Object();
obj.name = "张三";
obj.age = 20;
obj.fun = function() {
    alert("name=" + this.name + ",年龄=" + this.age);
}
obj.fun();

2)、花括号形式的自定义对象

对象定义

var 对象名 = {};//空对象
var 对象名={
    属性名:值,//定义一个属性
    属性名:值,
    函数名:function(){}//定义一个函数
}

对象访问

var obj = {
    name: "张三",
    age: 18,
    fun: function() {
        alert("name=" + this.name + ",age=" + this.age);
    }
}
obj.fun();

八、事件

1)、常用事件介绍

事件:电脑输入设备与页面进行交互的响应,我们称为事件。如:鼠标点击,鼠标滑动,键盘输入。

常用事件

  • onload:加载完成事件。页面加载完成之后,常用于页面js代码初始化操作。
  • onclick:单击事件。常用于按钮的点击响应操作。
  • onblur:失去焦点事件。常用于输入框数去焦点后验证其输入内容是否合法。
  • onchange:内容发生改变事件。常用于下拉列表和输入框内容发生改变后操作。
  • onsubmit:表单提交事件。常用于表单提交前,验证所有表单相是否合法。

2)、两种事件的注册

事件的注册(绑定),其实就是告诉浏览器当事件响应后要执行哪些操作代码,叫事件注册或事件绑定。

  1. 静态注册事件:通过html标签的事件属性直接赋予事件响应后的代码,叫作静态注册。

  2. 动态注册事件:是指事先通过js代码得到标签的dom对象,然后再通过dom对象.事件名=function(){}这种形式赋予事件响应后的代码,叫动态注册。

动态注册的基本步骤:

  1. 获取标签对象
  2. 标签对象.事件名=function(){}

3)、 onload事件

onload事件是浏览器解析完页面之后就会自动触发的事件。

静态注册onload事件

<body onload="alert(‘静态注册onload事件‘)">

onload事件动态注册,是固定写法

<script type="text/javascript">
window.onload = function() {
            alert("动态注册onload事件");
        }
</script>

4)、onclick事件

单击事件

静态注册onclick事件

<script type="text/javascript">
    function onclickFun() {
                alert("静态注册onclick事件");
    }
</script>
<button onclick="onclickFun()">按钮1</button>

动态注册onclick事件

<script type="text/javascript">
        function onclickFun() {
            alert("静态注册onclick事件");
        }
        window.onload = function() {
            //1.获取标签对象。document是js提供的获取整个文档的对象
            var btn = document.getElementById("btn2");
            //2.标签对象.事件名=function(){}
            btn.onclick = function() {
                alert("动态注册onclick事件");
            }
        }
</script>
<button id="btn2">按钮2</button>

5)、onblur事件

失去焦点事件

静态注册onblur事件

<script type="text/javascript">
        function onblurFun() {
            console.log("文本框失去焦点");
        }
</script>
用户名:<input type="text" onblur="onblurFun()" />

动态注册onblur事件

<script type="text/javascript">
    function onblurFun() {
    	console.log("文本框失去焦点");
	}
    window.onload = function() {
        var pd = document.getElementById("password");
        pd.onblur = function() {
            console.log("动态注册失去焦点事件");
        }
    }
</script>
密码: <input type="password" id="password" />

6)、onchange事件

静态注册onchange事件

<script type="text/javascript">
        function onchangeFun() {
            alert("选项已经改变");
        }
</script>
<select onchange="onchangeFun()">
        <option>选项1</option>
        <option>选项2</option>
        <option>选项3</option>
        <option>选项4</option>
</select>

动态注册onchange事件

<script type="text/javascript">
    window.onload = function() {
        var se = document.getElementById("select");
        se.onchange = function() {
            alert("选项已经改变");
        }
	}
</script>
<select onchange="onchangeFun()" id="select">
        <option>选项1</option>
        <option>选项2</option>
        <option>选项3</option>
        <option>选项4</option>
</select>

7)、onsubmit事件

表单提交事件

静态注册onsubmit事件

<script type="text/javascript">
        function onsubmitFun() {
            alert("静态注册表单提交事件");
        }
</script>
<form action="#" method="get" onsubmit="onsubmitFun()">
        <button type="submit">提交</button>
</form>

我们知道表单提交事件通常用来验证数据是否合法,那么不合法该如何停止提交呢?

我们可以了解到当onsubmit的值等于“return false”时,表单不会提交

<form action="#" method="get" onsubmit="return false">
        <button type="submit">提交</button>
    </form>

因此我们可以将函数检验数据将不合法时返回false,这样表单就不会提交了。

不过要注意一下,onsubmitFun替换的知识false,return仍需保留。

<script type="text/javascript">
        function onsubmitFun() {
            alert("静态注册表单提交事件");
    		return false;
        }
</script>
<form action="#" method="get" onsubmit="return onsubmitFun()">
        <button type="submit">提交</button>
</form>

动态注册onsubmit事件

<script type="text/javascript">
        window.onload = function() {
            var fm = document.getElementById("form");
            fm.onsubmit = function() {
                alert("动态注册表单提交事件");
                return false;
            }
        }
</script>
<form action="#" id="form">
        <button type="submit">提交</button>
</form>

在事件的函数中直接返回false就可以停止提交表单

九、DOM模型

DOM(Document Object Model):文档对象模型

通俗的讲,就是把文档中的标签,属性,文本,转换成为对象来管理

1)、Document对象

Document将文档代码以树结构的形式存储

技术图片

Document对象的理解:

  1. Document管理了所有html文档内容。
  2. document是一种树结构的文档,有层级关系。
  3. 它让我们把所有的标签都对象化。
  4. 我们可以通过document访问所有的标签对象。我们在前面的动态注册事件时就利用了这一点。

html标签对象化模拟

将下面代码的div模拟对象化

<body>
    <div id="div1">
        hello
    </div>
</body>

结果:

class Dom{
    private String id; //id属性。跟标签有的属性对应
    private String tagName; //标签名。即div
    private Dom parentNode; //父亲。即body
    private List<Dom>children; //孩子节点
    private String innerHTML; //起始标签到结束标签中间的内容。即hello
}

2)、document查询的方法

  1. document.getElementById():通过id属性的值来查询元素
  2. document.getElementsByName():通过name属性的值来查询元素
  3. document.getElementsByTagName():通过标签名来查询元素
  4. document.getElementsByClassName():返回文档中所有指定类名的元素集合,作为 NodeList 对象
  5. document.getElementsByTagNameNS():返回带有指定名称和命名空间的所有元素的 NodeList。

在使用查询时,如果有id属性,优先使用getElementById,没有id,优先使用getElementsByName,都没有,再使用getElementsByTagName。

3)、创建html标签并显示

<script type="text/javascript">
        window.onload = function() {
            var obj = document.createElement("div"); //在内存中
            obj.innerHTML = "今天天气很不错";
            document.body.appendChild(obj);//为body添加子标签
        }
</script>

js简单入门

标签:基础   btn   浮点   结果   create   数据类型   空间   boolean   逻辑运算   

原文地址:https://www.cnblogs.com/ylcc-zyq/p/12546912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!