【培训】DAY15 JavaScript基础

版权声明:本文内容来源于网络,如有侵权请联系删除 https://blog.csdn.net/ZyhMemory/article/details/88972460

函数和事件

<!DOCTYPE html>
<html>
<head>
    <script src="/jquery/jquery-1.11.1.min.js"></script>
    <script type="text/javascript">
        function myFunction(val) {
            document.getElementById("demo").innerHTML = val;
        }
    </script>
</head>
<body>
    <p id="demo">默认段落</p>
    <button type="button" "myFunction('段落已修改')">点击这里</button>
</body>
</html>

< script>< /script>中就是JS脚本

上述代码指在点击时触发myFunction函数

通常,我们需要在某个事件发生时执行代码,比如当用户点击按钮时。
如果我们把 JavaScript 代码放入函数中,就可以在事件发生时调用该函数。
使用函数时,可以发送任意多的参数,由逗号 (,) 分隔:myFunction(argument1,argument2)
声明函数时,请把参数作为变量来声明,变量和参数必须以一致的顺序出现。

可以在 HTML 文档中放入不限数量的脚本。
脚本可位于 HTML 的 或 部分中,或者同时存在于两个部分中。
我们通常的做法是把函数放在页面底部。这样就可以把它们安置到同一处位置,不会干扰页面的内容

作用域

局部变量

// 此处不能调用 carName 变量
function myFunction() {
    var carName = "Volvo";
    // 函数内可调用 carName 变量
}

全局变量

var carName = " Volvo";
// 此处可调用 carName 变量
function myFunction() {
    // 函数内可调用 carName 变量
}
  • 函数参数只在函数内起作用,是局部变量。
  • 如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。
  • 在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。

变量

var x=5,y=6,z=x+y;

JavaScript 变量可用于存放值(比如 x=5)和表达式(比如 z=x+y)。

变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume)。
变量可以以字母开头
变量也能以 $ 和 _ 符号开头(不推荐)
变量名称对大小写敏感(y 和 Y 是不同的变量)

数据类型

值类型(基本类型):

  • 字符串(String)
  • 数字(Number)
  • 布尔(Boolean)
  • 对空(Null)
  • 未定义(Undefined)
  • Symbol(不常用)

引用数据类型:

  • 对象(Object)
  • 数组(Array)
  • 函数(Function)

JavaScript 动态类型

	var x;              // x 为 undefined
	x = 5;              // 现在 x 为数字
    x = "John";         // 现在 x 为字符串
    x = 5 + "John";     // 现在 x 为字符串

对象:var person = {firstname:“John”, lastname:“Doe”, id:5566};
var name=person.lastname;
var name=person[“lastname”];

数组:var persons=[“Saab”,“Volvo”,“BMW”];

	var persons=[
           {firstname:"John", lastname:"Doe", id:5566},
           {firstname:"tom", lastname:"Doe", id:5577}
    ];
    var family={
        firstnames:["Saab","Volvo","BMW"],
        lastname:"Doe"
    };

数组创建

var BAT = ['Alibaba', 'Tencent', 'Baidu'];
var students = [{name : 'Bosn', age : 27}, {name : 'Nunnly', age : 3}];
var arr = ['Nunnly', 'is', 'big', 'keng', 'B', 123, true, null];
var arrInArr = [[1, 2], [3, 4, 5]];
var commasArr1 = [1, , 2]; 				// 1, undefined, 2
var commasArr2 = [,,];	 				// undefined * 3
var arr = new Array(); 
var arrWithLength = new Array(100); 	// undefined * 100
var arrLikesLiteral = new Array(true, false, null, 1, 2, "hi");		// 等价于[true, false, null, 1, 2, "hi"];

数组读写

var arr = [1, 2, 3, 4, 5];
arr[1]; 		// 2
arr.length; 	// 5
arr[5] = 6;
arr.length; 	// 6
delete arr[0];
arr[0]; 		// undefined

数组的length属性

var arr = [1, 2, 3, 4, 5]
arr.length = 2;
arr; 		// [1, 2];

数组元素增删

var arr = [];
arr[0] = 1;
arr[1] = 2;
arr.push(3);
arr; 					// [1, 2, 3]

arr[arr.length] = 4; 	// equal to arr.push(4);
arr; 					// [1, 2, 3, 4]

arr.unshift(0);
arr; 					// [0, 1, 2, 3, 4];
delete arr[2];
arr; 					// [0, 1, undefined, 3, 4]
arr.length; 			// 5
2 in arr; 				// false

arr.length -= 1;
arr; 					// [0, 1, undefined, 3, 4],  4 is removed

arr.pop(); 				// 3 returned by pop
arr; 					// [0, 1, undefined], 3 is removed

arr.shift(); 			// 0 returned by shift
arr; 					// [1, undefined]

数组迭代

var i = 0, n = 10;
var arr = [1, 2, 3, 4, 5];
for (; i < n; i++) {
    console.log(arr[i]); 		// 1, 2, 3, 4, 5
}

for(i in arr) {
    console.log(arr[i]); 		// 1, 2, 3, 4, 5
}

Array.prototype.x = 'inherited';

for(i in arr) {
    console.log(arr[i]); 		// 1, 2, 3, 4, 5, inherited
}

for(i in arr) {
    if (arr.hasOwnProperty(i)) {
        console.log(arr[i]); 	// 1, 2, 3, 4, 5
    }
}

二维数组

var arr = [[0, 1], [2, 3], [4, 5]];
for (var i = 0; i < arr.length; i++) {
     var row = arr[i];
     console.log('下标为 ' + i);
     for (var j = 0; j < row.length; j++) {
          console.log(row[j]);
     }
}

结果:

下标为 0
0
1
下标为 1
2
3
下标为 2
4
5

数组方法介绍

Array.prototype.join
Array.prototype.reverse
Array.prototype.sort
Array.prototype.concat
Array.prototype.slice
Array.prototype.splice
Array.prototype.forEach
Array.prototype.map
Array.prototype.filter
Array.prototype.every
Array.prototype.some
Array.prototype.reduce/reduceRight
Array.prototype.indexOf/lastIndexOf
Array.isArray

详细请看

事件

HTML 事件是发生在 HTML 元素上的事情。
当在 HTML 页面中使用 JavaScript 时, JavaScript 可以触发这些事件。

下面是一些常见的HTML事件的列表:

事件 类型
onchange HTML元素改变
onclick 用户点击HTML元素
onmouseover 用在一个HTML元素上移动鼠标
onmouseout 用户从一个HTML元素上移开鼠标
onkeydown 用户按下键盘按键
onload 浏览器已完成页面的加载

jQuery

jQuery 是一个 JavaScript 库。
jQuery 极大地简化了 JavaScript 编程。
在这里插入图片描述

语法 描述
$("*") 选取所有元素
$(this) 选取当前HTML元素
$(“p.intro”) 选取class为intro的< p>元素
$(“p:first”) 选取第一个< p>元素
$(“ul li:first”) 选取第一个< ul>元素的第一个< li>元素
$("ul li:first-child”) 选取每个< ul>元素的第一个< li>元素
$("[href]") 选取带有href属性的元素
$(“a[target=’_blank’]”) 选取所有target属性等于’_blank’的< a>元素
$(“a[target!=’_blank’]”) 选取所有target属性不等于’_blank’的< a>元素
$(":button") 选取所有type="button"的< inpet>元素和< button>元素
$(“tr:even”) 选取偶数位置的< tr>元素
$(“tr:odd”) 选取奇数位置的< tr>元素

jQuery事件函数

Event 函数 绑定函数至
$(document).ready(function) 将函数绑定到文档的就绪时间(当文档完成加载时)
$(selector).click(function) 触发或将函数绑定到被选元素的点击事件
$(selector).dblclick(function) 触发或将函数绑定到被选元素的双击事件
$(selector).focus(function) 触发或将函数绑定到被选元素的获得焦点事件
$(selector).mouseover(function) 触发或将函数绑定到被选元素的鼠标悬停事件

为了易于维护,一般我们将 jQuery 函数放到独立的自定义 .js 文件中,但页面要引入js函数文件,一定
要先引入jquery插件,如下:
< script type=“text/javascript” src=“jquery.js”>< /script>
< script type=“text/javascript” src=“my_jquery_functions.js”>< /script>

jQuery效果

隐藏和显示
淡入淡出
滑动
动画
停止动画
Callback 函数
Chaining

jQuery AJAX

AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML
或 JSON - 同时您能够把这些外部数据直接载入网页的被选元素中。

以下列出了几种常用的 jQuery AJAX 方法:

方法 描述
$.ajax() 执行异步 AJAX 请求
$.get() 使用 AJAX 的 HTTP GET 请求从服务器加载数据
$.getJSON() 使用 HTTP GET 请求从服务器加载 JSON 编码的数据
$.post() 使用 AJAX 的 HTTP POST 请求从服务器加载数据

HTTP 请求:GET / POST 两种在客户端和服务器端进行请求-响应的常用方法

  • GET - 从指定的资源请求数据
  • POST - 向指定的资源提交要处理的数据
  • GET 基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。
  • POST 也可用于从服务器获取数据。不过,POST 方法不会缓存数据,并且常用于连同请求一起发送数据。
$.ajax({
            type: "GET",
            url: "test.json",
            data: { username: $("#username").val(), content: $("#content").val() },
            dataType: "json",
            success: function (data) {
                $('#resText').empty();   //清空resText里面的所有内容
                var html = '';
                $.each(data, function (commentIndex, comment) {
                    html += '<div class="comment"><h6>' + comment['username'] + ':</h6>
                        < p class="para"' + comment['content'] + '</p ></div > ';
                });
                $('#resText').html(html);
            }
        });
$.get("test.json",
    {
        username:$("#username").val(),
        content:$("#content").val()
    },function(data,status,xhr){
        //data - 包含来自请求的结果数据
        //status - 包含请求的状态("success"、"notmodified"、"error"、"timeout"、"parsererror")
    },"json")

jQuery手册

猜你喜欢

转载自blog.csdn.net/ZyhMemory/article/details/88972460