JavaScript基本使用

JAVAScript

简介:一种客户端脚本语言
组成:ECMAScript+BOM+DOM
作用:用于静态页面的美化;

导入

1、当前页面直接编写
<script>
    alert("nihao!");
</script>
2、在js文件中写javaScript代码,之后将js文件导入

注意加载顺序:页面由上到下加载,要想使用就要在使用之前加载(即同一个页面加载有上下之分)

js文件

alert("hello!");

当前页面导入

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

注释

单行注释://
多行注释:/* */

输入输出语句

prompt("弹框数据框);
alert(“弹框提示信息”);
console.log(“控制台输出”);
document.write(“页面输出”);(无自动换行)

变量和常量

1、js里面定义变量不去风数据类型,直接赋值即可;
2、变量类型
3、常量

<script>
    //局部变量
    {
        let a=1;
        document.write(a);
    }
    //全局变量
    var b = 2;
    document.write(b);
    //常量,常量是局部变量
    const f = 1;
    alert(f);
</script>

数据类型

1、String
2、boolean
3、number
4、underfined
5、object
6、function;函数也可以作为数据类型
7、NaN;一种不是数字的数字类型(与任何值比较都为false,包括自己,isNaN()专门用于判断是否为NaN类型)
获取变量类型typeof(变量名);

<script>
    let a ="dahjdo";
    document.write("数据类型"+typeof(a)+"<br/>");
    let b =1;
    document.write("数据类型"+typeof(b)+"<br/>");
    let c = null;
    document.write("数据类型"+typeof(c)+"<br/>");//object
    let d = true;
    document.write("数据类型"+typeof(d)+"<br/>");//boolean
    let f;
    document.write("数据类型"+typeof(f)+"<br/>");//underfined
    document.write("数据类型"+typeof(NaN)+"<br/>");//number
</script>

运算符

算数运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YSs1aDMe-1592966835484)(C:\Users\computer\AppData\Local\Temp\1592648993867.png)]

赋值运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKH0cFQ0-1592966835492)(C:\Users\computer\AppData\Local\Temp\1592649028721.png)]

比较运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8pr0K1ih-1592966835497)(C:\Users\computer\AppData\Local\Temp\1592649058616.png)]

=区别

let s1 = 5;
let s2 = "5";
document.write((s1 == s2) + "<br/>");  //true 比较值是否相等
document.write((s1 === s2) + "<br/>");  //恒等于,既比较值,又比较类型
document.write((s1!=s2) + "<br/>");  //false
document.write((s1!==s2) + "<br/>");  //恒不等于 true
逻辑运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3SJbPhEg-1592966835502)(C:\Users\computer\AppData\Local\Temp\1592649149214.png)]

三元运算符

判断条件 ?为真的值:为假的值

流程控制和循环语句

if语句
switch语句
for循环
while循环

<script>
    //if语句
    if(1<2){
        document.write(1 + "<br/>");
    }else{
        document.write(2 + "<br/>");
    }
    document.write("======================" + "<br/>");
    //switch语句
    switch(2){
        case 1:
            document.write(1 + "<br/>"); 
            break;
        case 2:
            document.write(2 + "<br/>");
            break;
        default:
            document.write(2 + "<br/>");
            break;
    }
    document.write("======================" + "<br/>");
    //for循环
    for (let i = 0; i < 10; i++) {
        document.write(i + "<br/>");
    }
    document.write("======================" + "<br/>");
    //while循环
    var i = 0;
    while(i<10){
        i++;
        document.write(i + "<br/>");
    }
</script>

if判断中可以填入其他类型

				真       假
number      	非0      0
string     		非空串   空串 ""
object      	非空     null
undefined            永远为假
NaN (Not a Number)   永远为假

数组

JavaScript中数组长度和类型都不固定;

<script>
    let arr = [4,5,6];
    document.write(arr[3]+"<br/>");
    arr[5] = "djai";
    document.write(arr+"<br/>");//4,5,6,,,djai
    document.write(arr.length+"<br/>");//6,显示已赋值长度,从最后一个赋值索引算
    document.write("==============<br>");
    //运算符...
    //复制数组
    let arr2=[...arr];
    document.write(arr2+"<br/>");
    //合并数组
    let arr3 = [...arr,...arr2];
    document.write(arr3+"<br/>");
    //转转换字符串为数组
    let arr4=[..."heima"];
    document.write(arr4+"<br/>");//h,e,i,m,a
</script>

函数

函数中,传入参数不需要写类型,返回值可有可无;
匿名函数一般用于后期学的事件;(function(){},不命名)

<script>
    function fun01(){
        document.write("无参无返回值;"+"<br/>");
    }
    fun01();//调用
    function fun02(){
        let a = 2;
        return a;
    }
    let b = fun02();
    document.write("无参有返回值;"+b+"<br/>");
    function fun03(x,y){
        let c = x+y; 
        return c;   
    }
    let d = fun03(1);
    document.write("有参有返回值;"+d+"<br/>");
    function fun04(...abs){
        let e = abs[0]; 
        return e;   
    }
    let f = fun04(1,2);
    document.write("有可变参有返回值;"+f+"<br/>");
	function fun05(){
        document.write("函数作为参数"+"<br/>");
    }
    function fun06(a){
        a;
    }
    fun06(fun05());
</script>
注意事项

1、在JS中没有函数的重载,后面出现的同名函数会覆盖前面的同名函数
2、实参个数与形参的个数无关,只会按函数名字去调用
3、在每个函数的内部都有一个隐藏的数组,名字叫arguments

隐藏数组的执行过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vj3cHhIE-1592966835507)(C:\Users\computer\AppData\Local\Temp\1592651344764.png)]

DOM

文档对象模型;
其中包括:元素对象(element)、属性对象(attribute)、文档对象(text);

Element元素

获取

方法说明
getElementById()根据id值获取元素
getElementsByClassName()根据class属性值获取一个元素对象数组
getElementsByName()根据name属性值获取一个元素对象数组
getElementsByTagName()根据标签名获取一个元素对象数组
parentElement:这是一个属性获取当前元素的父元素

增删改

方法说明
createElement(标签名)创建新元素
appendChild(子元素)新增子元素到父元素,父元素调用
removeChild(子元素)通过父元素删除子元素,父元素调用
replaceChild(新元素)新替换旧

remove()方法(自己删除自己)只在有些浏览器中生效,所以不;

attribute属性

方法说明
setAttribute(属性名,值)添加属性
getAttribute(属性名)获取属性
removeAttribute(属性名)删除属性
style属性添加样式
className属性添加指定样式
<style>
    .b{
        color:blue;
    }
    
</style>
<body>
    <a>点我</a>
</body>
<script>
    let el = document.getElementsByTagName("a")[0];
    el.setAttribute("id","a");

    let i = el.getAttribute("id");
    console.log(i);

    el.removeAttribute("id");

    // el.style.color="red";

    el.className="b";
</script>

text文本

方法说明
innerText添加文本
innerHTML添加标签和文本
<script>
    var div1 = document.getElementById("div1");
    // div1.innerHTML = "<input type='text'>";  //将文本替换为一个文本框
    div1.innerHTML += "<input type='text'>";   //追加一个文本框
</script>

事件

某些组件执行了某些操作后(如点击,按键等),会触发某些代码的执行;

常用事件

事件说明
onload某个页面或图像被加载完成
onsubmit当表单提交时触发
onclick鼠标单击事件
onblur元素失去焦点
onfocus元素获得焦点
onbchange用户改变内容
<script>
	var in_id = document.getElementById("in_id");
	in_id.onblur = function () {
	    alert("失去焦点。。。");
	}
</script>

了解事件

事件说明
onkeydown某个键被按下
onkeypress某个键被按下或按住不放
onkey某个键被松开
onmousedown某个鼠标按键被按下
onmouseup某个鼠标按键被松开
onmouseover鼠标被移到某元素之上
onmouseout鼠标从某元素移开
使用函数什么时候加();

onclick属性实际上就是一个函数变量;其可以接受:普通函数名、匿名函数的变量名、匿名函数;

JavaScript面向对象

类定义

第一种方式(了解,无限类似JAVA)

<script>
	class 类名{
	//构造方法
	    constructor(属性1,属性2){
	        this.field1 = 属性1this.field1 = 属性2}
	    方法名(参数...){
	        方法体;
	        return}
	}
	//使用
</script>

第二种方式:字面量定义;实际是直接创建对象使用

<script>
    let person = {
        name : "张三",
        age :23,
        hobby : ["听课","学习"],
        eat : function(){
        	document.write("吃饭!");
    	}
    }
    //使用
    变量民.字段;
</script>

继承(了解);让类与类产生子父类关系,使子类可以使用父类权限变量;(与java类似)

内置对象

javaScript中提供的带有属性和方法的特殊数据类型;

Number

方法名说明
parseFload()将传入的字符串浮点数转为浮点数
parseInt()将传入的字符串整数转为整数(从数字开始,在不是数字处停止)
isNaN()判断是否为NaN

Math

成员方法说明
ceil()向上取整
floor()向下取整
round()四舍五入
random()随机数,[0.0,1.0)
pow(x,y)x的y次方

Date

构造方法说明
Date()根据当前时间创建对象
Date(value)根据指定毫秒值创建对象
Date(year,month,[dat,hours,minutes,seconds,millisecond])根据指定字段创建对象(月份0~11)
成员方法说明
getFullYear()获取年份
getMonth()获取月份
getHours()获取小时
getMinutes()获取分钟
getSeconds()获取秒数
getTime()返回从1970年1月1日0时起至今的毫秒值
toLocalString()返回当地日期格式的字符串

String

成员方法说明
length属性获取字符串长度
charAt(index)获取指定索引处的字符
indexOf(value)获取指定字符串出现的索引位置
substring(start,end)根据指定索引范围截取字符串(含头不含尾)
split(value)根据指定规则切割女字符串,返回数组
replace(old,new)使用新字符串替换老字符串

RegExp

构造方法说明
RegExp(规则)按指定规则创建对象
let reg=/^规则$/直接赋值(^代表开头;$代表结束)
成员方法说明
test(匹配字符串)验证字符串是否符合规则

常用规则

表达式说明
[a]只能是a
[abc]只能是abc中的某一个
[1]只能是1
[123]只能是123中的某一个
[a-z]可以是a到z中的某一个
[A-Z]可以是A到Z中的某一个
[0-9]可以是0到9中的某一个
{5}只能出现5次
{4,6}只能出现4到6次

Array

成员方法说明
push(元素)添加元素到数组的末尾
pop()删除数组末尾的元素
shift()删除数组最前面的元素
include(元素)判断数组中是否包含指定对的元素
reverse()反转数组元素
sort()对数组元素排序

set(了解)

元素唯一,存取顺序一致,即元素有序(和java不同)

构造方法说明
Set()创建set集合对象
成员方法说明
add(元素)向集合中添加元素
size属性获取长度
keys()获取迭代器对象
delete(元素)删除指定元素

map(了解)

key唯一,存取顺序一致

构造方法说明
Map()创建Map集合对象
成员方法说明
set(key,value)向集合中添加元素
size属性长度
get(key)通过key获取值
entries()获取迭代器对象
delete(key)通过key删除元素(成功true,失败false)

JSON

一种轻量级数据交换格式;
json字符串是一种规范。在不同语言中都有对应实现;
简洁易读,也便于计算机解析,极大地提高了数据的传输效率;
格式:

{"city":"北京","date":"2088-08-08","shidu":"22%","wendu":"10° ~ 23°"}

语法

方法说明
stringify(对象)将相应对象转换为json格式字符串
parse(字符串)将json格式字符串转为js对象

Json | JS对象 | java Map | java 对象

1、json对象,key和value对应的字符串格式
2、js对象,也是kv形式存储,多了方法;
3、map;以kv形式存储数据
4、java对象;变量也是以kv形式存储,多了方法;

共同点

均有以key和value形式存储的数据;所以相互之间有方法可以转化

BOM

浏览器对象模型;
将浏览器各个部分封装成不同的对象,方便我们操作;
Navigtor:浏览器对象
Window窗口对象;(主要使用)
Location:地址栏对象;(主要使用)
History:历史记录对象;(只包含当前窗口的历史记录)
Screen:显示器屏幕对象;

Window窗口对象

其他对象均是该对象的属性;使用时可以省略前面的window;如:
location == Window.location;

定时器

方法说明
唯一标识 setTimeout(功能,毫秒值)设置一次性定时器
clearTimeout(标识)消除设置的一次性定时器
唯一标识 setInterval(功能,毫秒值)设置循环定时器
clearInterval(标识)消除循环定时器
<script>
    //一次性计时器
    // setTimeout("alert('你好')",2000);//传入js代码
    /*var id = setTimeout(fun,2000);//传入方法
    clearTimeout(id);//取消计时*/
    function fun(){
        alert("hello");
    }

    //循环计时器
    var id = setInterval(fun,2000);
    clearInterval(id);
</script>

加载事件

window.onload;当前页面全部加载完毕触发某事件;

Location地址栏对象

href属性

用于设置要跳转的URL;

<script type="text/javascript">
    //1. 获取属性值,得到当前访问的地址
    //document.write(location.href + "<br/>");
    //2. 设置属性值,跳转到指定的页面
    //location.href = "http://www.itcast.cn";

    //获取?后面的参数字符串
    //document.write(location.search + "<br/>");

    //显示现在的时候
    document.write(new Date().toLocaleString() + "<br/>");
</script>

;//传入方法
clearTimeout(id);//取消计时*/
function fun(){
alert(“hello”);
}

//循环计时器
var id = setInterval(fun,2000);
clearInterval(id);
```

加载事件

window.onload;当前页面全部加载完毕触发某事件;

Location地址栏对象

href属性

用于设置要跳转的URL;

<script type="text/javascript">
    //1. 获取属性值,得到当前访问的地址
    //document.write(location.href + "<br/>");
    //2. 设置属性值,跳转到指定的页面
    //location.href = "http://www.itcast.cn";

    //获取?后面的参数字符串
    //document.write(location.search + "<br/>");

    //显示现在的时候
    document.write(new Date().toLocaleString() + "<br/>");
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值