JavaScript简称为JS,由网景公司开发的客户端脚本语言,不需要编译,可以直接运行
Web前端三层:
在页面中使用script标签,在script标签的标签体中编写js代码
script标签可以放在页面的任意位置,一般放在head中
<script type="text/javascript">
js代码
script>
在普通标签中编写js代码,一般需要结合事件属性,如onclick、onmouseover等
<input type="button" value="点我" onclick="alert('Hello')"/>
<a href="javascript:alert('World')">我是超链接a>
使用单独的 .js
文件定义,然后在页面中使用script标签引入外部脚本文件
<script type="text/javascript" src="js文件的路径">script>
注:如果某个script标签用于引入外部js文件,则该script标签的标签体中不能再写js代码
.js
文件:
alert("哈哈");
.html
文件:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS的引用方式title>
<style>
div{
width: 100px;
height: 100px;
background: #ccc;
}
style>
<script>
alert("Hello JavaScript"); //弹出一个窗口
script>
<script src="js/hello.js">script>
head>
<body>
第一个JavaScript程序 <br>
<input type="button" value="点我" onclick="alert('我被点了,晕了!')">
<div onmouseover="alert('走开!')">把鼠标移上来!div>
<a href="javascript:alert('超链接被触发')">我是超链接a>
body>
html>
js是一门弱类型的语言,声明变量时使用var关键字,不需要指定变量的类型
语法: var 变量名=变量值;
在ECMAScript 6规范中新增let关键字,也用于声明变量
使用let声明的变量支持块级作用域,而使用var声明的变量不支持块级作用域
注:在IDEA中配置ES版本 Settings——>Languages & FrameWorks——>JavaScript——>JavaScript Language version
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<script>
//变量
var age;
age = 18;
var name = "tom";
sex = "male"; //强烈不建议
var a = 5, b = 2, c = 3;
var 姓名 = "张三"; //不建议
alert(age);
//使用var声明的变量不支持块级作用域,在代码块中的变量外部也可以使用,如果需要支持块级作用域,使用let声明变量
{
var x = 6;
let y = 7;
}
alert(x);
//使用let声明的变量不能在代码块外使用
//alert(y);
script>
head>
<body>
body>
html>
输出:
输入:
typeof 变量
判断变量的类型Number(变量)
将字符串转换为数值 常用转义符:
\n
换行\t
缩进\"
双引号\'
单引号 单行注释: //
多行注释: /* */
代码区分大小写
每条语句以分号
结尾代码缩进
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<script>
//输出信息
alert('嘿嘿');
console.log('哈哈');
document.write('嘻嘻');
//输入
var age = prompt('请输入您年龄:');
console.log(typeof age);
console.log(age+2);
age = Number(age);
console.log(age+2);
//转义符
console.log('Hello\nWorld');
console.log('Hello\tWorld');
console.log("Hello\'World");
console.log('Hello\"World');
script>
head>
<body>
body>
html>
基础数据类型:
数据类型转换:
转换为number
使用Number()、parseInt()、parseFloat()
转换为string
拼接空字符串
转换为boolean
使用Boolean()
注:0、空字符串、null、undefinded、NaN会被转换成false,其他值都会被转换为true
算术运算符:+、-、*、/、%、**(a**b表示a的b次方)、++、- -
比较运算符:<、>、>=、<=、== 、===、!=(==是等于,只判断内容是否相等;===是全等于,既要判断内容,也要判断数据类型)
赋值运算符:=、+=、=、*=、/=、%=
逻辑运算符:&&、||、!
条件运算符:条件?表达式1:表达式2
if…else、switch
while、do…while、for、for…in
break、continue
var str='welcome'; // 可以将字符串看作是由多个字符组成的集合
for(var index in str){ //index表示集合中每个元素的索引,并不是元素本身
// console.log(index);
console.log(str[index]);
}
语法:
var arr = new Array();
var arr = new Array(值1,值2...);
var arr = [值1,值2...];
注意:
方法 | 描述 |
---|---|
sort() | 排序,默认按字符编码的顺序排列,非string类型会自动转换为string,可自定义比较规则 |
reverse() | 反转,将数组元素倒序排列 |
join(separator) | 将数组中元素使用指定的分隔符连接成字符串,默认通过逗号进行连接 |
indexOf() | 返回指定元素在数组中首次出现的位置 |
slice(begin,end) | 截取数组中索引从begin到end的元素,左闭右开,如果省略第二个参数,则表示截取到末尾 |
toString() | 将数组转换为字符串 |
二维数组可以认为是特殊的一维数组,即一维数组中的每个元素又是一个一维数组
语法:
var arr = new Array();
arr[0] = new Array();
arr[1] = new Array();
arr[][] = 值;
var arr=[
[值1,值2...],
[值1,值2...],
[值1,值2...]
];
语法:
function 函数名(参数1,参数2...){
// 函数体
}
注意:
变量的作用域:
不立即执行的函数调用,满足一定条件时才会执行或者由别的代码调用执行,称为回调函数callback 调用时只写函数名,没有小括号()和参数
应用:
<script>
function f1() {
console.log(111);
}
//将一个函数作为另一个函数的参数来回调
function f2(x,y){
y();
}
//点击页面时执行函数f1
window.onclick = f1; //回调函数,不能加小括号
f2(5,f1);
/*
*示例:利用回调函数自定义sort()的比较规则
*/
var arr = [12,4,23,6,2,86];
/*定义一个比较器
*升序:如果第一个参数比第二个参数大,则返回正数
* 如果第一个参数比第二个参数小,则返回负数
* 如果两个参数相等,则返回0
*/
function compareFn(a,b) {
return a-b;
}
arr.sort(compareFn); //将自定义的比较规则函数作为参数传入
console.log(arr);
script>
没有名字的函数,称为匿名函数,一般用于回调
应用场景:
window.onclick=function(){ // 匿名函数,用于回调
console.log("点击了页面!");
};
(function(){
console.log("此函数只执行一次!");
})();
ES6中允许使用“箭头” => 定义函数,称为箭头函数,也叫lambda表达式,是一种特殊的匿名函数
<script>
/*
*箭头函数,语法:参数 => 返回值
*/
//示例1
// var a = function (x) {
// return x*2;
// }
var a = x => x*2;
//示例2:如果箭头函数没有参数或有2个以上参数,则必须使用小括号表示参数部分
// var a = function () {
// return 5;
// }
var a = () => 5;
// var a = function (x,y) {
// return 5;
// }
var a = (x,y) => 5;
//示例3:如果箭头函数的函数体多于一条语句,则必须使用大括号将它们括起来
// var a = function (x,y) {
// var sum = x + y;
// return sum;
// }
var a = (x,y) => {
var sum = x + y;
return sum;
};
script>
注:因为内容过多,所以我分成了三篇博客,分别为JavaScript小白入门笔记(一)、JavaScript小白入门笔记(二)、JavaScript小白入门笔记(三),没有看过其他两篇的朋友可以关注我的博客阅读