01.WEB前端~JavaScript入门

JavaScript简介

JavaScript是一种轻量级的脚本语言,可以部署在多种环境,最常见的部署环境就是浏览器。所谓"脚本语言",指的是它不具备开发操作系统能力,而是只用来编写控制其他大型应用程序的操作方法

第一个JavaScript程序

<!DOCTYPE html>
<html>
<head lang="en">
    <title></title>
    <meta charset="utr-8">
</head>
<body>
    <script type="text/javascript">
        var str = "hello world";
        document.writeln(str);
    </script>
</body>
</html>

JavaScript变量类型

JavaScript中有六大基本数据类型,这六种数据类型也就是我们声明变量的类型。

(1) number 数字类型
(2)string 字符(串)类型
(3)boolean 布尔类型
(4)*Array 数组类型(不是基本数据类型)
(5)undefine&null 未定义类型&空类型
(6)object 对象类型

JavaScript输出

​ windows.alert() 弹出警告框

​ document.write() 将内容写道HTML文档中

​ console.log() 写入到浏览器到控制台

typeof获取当前变量类型运算符
var a = 100;
document.write(typeof a)

比较运算符

==: 简单比较运算符(忽略变量类型)

===: 标准比较运算符(计算变量类型)

!=: 判断是否不相等(忽略变量类型)

!==: 判断是否严格不相等(计算变量类型)

prompt: 输入语句

var a = prompt("您饿了嘛?: ");
switch(a){
    case "好饿": document.writeln("吃蛋糕吧");break;
    case "不饿": document.writeln("去运动吧");break;
    default: document.writeln("去睡觉吧");break;
}
字符串的基本操作
constructor 返回创建字符串属性的函数
length 返回字符串的长度
prototype 允许您向对象添加属性和方法

字符串方法

方法 描述
charAt() 返回指定索引位置的字符
charCodeAt() 返回指定索引位置字符的 Unicode 值
concat() 连接两个或多个字符串,返回连接后的字符串
fromCharCode() 将 Unicode 转换为字符串
indexOf() 返回字符串中检索指定字符第一次出现的位置
lastIndexOf() 返回字符串中检索指定字符最后一次出现的位置
localeCompare() 用本地特定的顺序来比较两个字符串
match() 找到一个或多个正则表达式的匹配
replace() 替换与正则表达式匹配的子串
search() 检索与正则表达式相匹配的值
slice() 提取字符串的片断,并在新的字符串中返回被提取的部分
split() 把字符串分割为子字符串数组
substr() 从起始索引号提取字符串中指定数目的字符
substring() 提取字符串中两个指定的索引号之间的字符
toLocaleLowerCase() 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLocaleUpperCase() 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLowerCase() 把字符串转换为小写
toString() 返回字符串对象值
toUpperCase() 把字符串转换为大写
trim() 移除字符串首尾空白
valueOf() 返回某个字符串对象的原始值
var str = "alvin";
var strs = "is great";
var list = str.concat(strs);    //字符串拼接
document.writeln(str.length); //字符串的长
document.writeln(str[2]);     //找索引
document.writeln(str.charAt(3));    //根据位置找到字符
document.writeln(list);
字符串对象截取
var str = new String("hello world");	//对象创建法
document.writeln(str);
//-------截取字符串-------
var result = str.substring(2,6);	//从2算起截取到6
document.writeln(result);

var results = str.substr(2,6)		//从2算起截取6个
document.writeln(results)
字符串其他方法
// indexOf()  返回一个字符串在另一个字符串中首次出现的索引
var str = "hello world alvin";
document.writeln(str.indexOf("world"));
//replace   找到第一个指定字符替换成目标字符
var str = "hello world alvin";
var result = str.replace("world","666")
document.writeln(result);
//-------trim()方法-------去掉字符串两端多余的空格
var str = "      hello world       ";
var resu = str.trim();
document.write(resu)
//localeCompare()方法  根据本地排序规则来进行比较
//-------match()方法------- 查找源字符串是否匹配某个字符串
var str = "alvin is great";	
document.write(str.match("alvin"));	//找到返回内容,没找到返回Null
//-------search方法-------  search和match相似
var str = "alvin is great";
document.write(str.search("alvin"));//找到返回下标,没有返回Null
练习:替换字符串中所有的 axt,替换成666
var str = "axtasjifasjfisaxtsfsoafjapsfaxt";
while(str.indexOf("axt") != -1){
    str = str.replace("axt","666");
}
document.write(str);

数组

//数组的声明
var arr = [10,20,"world",40,50];		//普通方法
var Arr = new Array("jel",5,'f',9.2);	//对象方法
document.write(arr[1]);
document.write(Arr[1]);

数组的遍历

var arr = [10,20,30,40,50,60,70];
//方式一
for(var index in arr){
    document.write(arr[index] + "  ")
}
document.writeln();
//方式二
for(var i = 0; i < arr.length; i++){
    document.write(arr[i] + "  ")
}

数组常用的一些方法

方法 说明
isArray 判断是否为数组
valueOf 返回数组本身
toString 将数组以字符串的形式返回
push 向数组末尾追加数据,返回当前数组的长度
pop 删除数组最后一个元素
join 将数组转化为字符串,默认按都好隔开
shift 在数组头部删除一个元素
unshift 在数组头部添加一个元素
reverse 数组反转
slice 数组截取
splice 数组截取,并且可以插入新的元素(改变原数组)
sort 排序
indexOf 索引
lastindexOf 反序索引
数组添加删除方法
//-------push方法尾部添加------- unshift是在第一个元素添加,其他的和push差不多
var arr = [10,20,30];
var len = arr.push(40);	//得到数组的长度
document.writeln(len);
document.writeln(arr.toString());
//-------pop删除最后一个-------shift是删除第一个,和pop差不多
var arr = [10,20,30];
var brr = arr.pop(); //得到被删除的元素
document.writeln(arr.toString() + "<br/>");     //已经删除了最后一个
document.writeln(brr); 

数组添加删除方法的练习
需求:
  模拟一款射击游戏的编码过程。有一个输入框和两个按钮。其中输入框用来显示手枪还有多少子弹。
	第一个按钮用来给手枪填子弹,第二个按钮用来射击。

要求
第一个按钮点击一次上一发子弹。最多拥有六发子弹。超过六发时点击提示弹夹已满
第二个按钮点击一次进行一次射击。射击一次子弹数减少一。当0发时提示弹夹已空。
无论是填子弹按钮还是射击按钮,每次弹夹中子弹发生改变时都会在输入框中显示。

<body>
    <p>
        <span>弹匣中子弹:</span>
        <input type="text" id="danxia">
    </p>
    <p>
        <button id="load">上子弹</button>
        <button id="shoot">射击</button>
    </p>
    <script type="text/javascript" charset="UTF-8">
        var danxia = document.getElementById("danxia"); //获取元素id
        var load = document.getElementById("load");
        var shoot = document.getElementById("shoot");
        var danxiaArr = [];
        //上面关联了id,现在就相当于把数组的长度赋值给了上面的文本框
        danxia.value = danxiaArr.length;
        //onclick按钮执行事件
        load.onclick = function(){
            if(danxiaArr.length == 6){
                alert("弹匣已满!");
            }else {
                danxiaArr.push("子弹");   //加子弹
                danxia.value = danxiaArr.length;    //赋值
            }
        }
        shoot.onclick = function(){
            if(danxiaArr.length == 0){
                alert("弹匣已空!");
            }else{
                danxiaArr.pop();    //删除元素
                danxia.value = danxiaArr.length;
            }
        }
    </script>
</body>
数组常用方法
//reverse反转, reverse会改变原数组
var list = arr.reverse();
document.write(arr.toString());
//slice截取,和字符串差不多,头是开区间,尾是闭区间
  var arr = [10,20,30,40,50];
  document.write(arr.slice(2,4));
//splice方法,根据索引范围删除元素
//如果只有一个参数,就会删除索引后面的全部内容,也包括索引自身
var arr = [10,20,30,40,50,60,70,80];
var newa = arr.splice(2,4);     //两边都是开区间,将被删除的元素返回
document.write(arr + "<br/>");  
document.write(newa);
二维数组的概念和其他编程语言差不多,这里就省略了
数组常用方法2
/*   1.isArray()
        描述:判断变量是否是数组,如果是返回true,否则返回false
        语法:Array.isArray();
        例子:
        var arr=['a','b','c'];
        console.log(typeof arr);
        console.log(Array.isArray(arr));
        var obj={};
        console.log(typeof obj);
        console.log(Array.isArray(obj));
        2.valueOf()
        描述:valueOf方法归属于Object对象类型,
        作用是返回指定对象的原始值。在数组中作用是返回数组本身。
        语法:arr.valueOf()
        例子:
        var arr=['a','b','c'];
        console.log(arr);
        console.log(arr.valueOf());
        console.log(arr===arr.valueOf());
        3.toString()
        描述:能够将数组转换成字符串,默认是以逗号隔开
        语法:arr.toString()
        注意:不仅能够合并数组元素,对布尔类型也能够生成
        例子:
        var arr=['aa','bb','cc'];
        var str=arr.toString();
        console.log(str);

        var str=true;
        console.log(str);
        var newStr=  str.toString();
        console.log(typeof  newStr);
        4.join()
        描述:join方法能够以给定的参数做分隔符,将所有的数组元素组成一个字符串。
        如果不提供参数,默认使用逗号分隔。
        语法:arr.join('分隔符');
        */
        var  str='hello sxt! goodbye sxt';
        var arr= str.split(' ');
        console.log(arr);
        var newStr=arr.join('==');
        console.log(newStr);

函数:

​ JavaScript里面的函数使用 function声明,形参直接输入名字即可,概念和java一样

function num(a,b){
    return a + b;
}
var result = num(7,8);
document.write(result);

JavaScript对象

​ 大括号定义的无序的数据集合,由键值对构成。键与值之间用冒号

基本语法
function eat(){
    document.write("我要吃饭!");
}
var obj = {
    name:"张三",  //字符串
    age: 18,        //数字
    ability:eat()   //函数
};
document.write(obj.ability);    //输入键
document.write(obj.age);

对象属性的操作

Object keys() 获取对象所有属性
delete 删除一个属性
in 检查对象是否包含一个属性
for in 遍历对象所有属性
with 操作多个对象属性

Object Keys() 获取对象所有属性,指的是key 并非 values

var obj = {
    name : "小王",
    age : 22,
    sex : "男"
};
var result = Object.keys(obj);
document.write(result.toString());

delete 从对象中删除一个属性, 键值对全部删除,返回的结果是boolean

var flag = delete obj.age;  //删除成功返回true,否则返回false

in 检查对象是否包含一个属性: 语法 key in obj

document.write("name" in obj);

for in 遍历对象的所有属性 语法 for (var pro in obj)

for(var pro in obj){
    document.write(obj[pro] + " ");
}

with同时操作一个对象的多个属性(不常用)

with(obj){
    name = "小张";
    age = 18
};

对象的引用

​ 如果不同的变量名指向同一个对象,那么他们都称为这个对象的引用。也就是说这些变量共同指向同一个内存地址,修改其中一个变量所指向的指,都会影响到其他所有变量所指向的值

Math对象

Math对象属性

Math.E : 常熟e。 //2.718281828459045
Math.LN2: 2的自然对数 //0.6931471805599453
Math.LN10: 10的自然对数 //2.302585092994046
Math.LOG2E 以2为底的e的对数 //1.4426950408889634
Math.LOG10E 以10为底的e的对数 //0.4342944819032518
Math.PI 常数pi //3.141592653589793
Math.SQRT1_2 0.5的平方根 //3.141592653589793
Math.SQRT2 2的平方根 //1.4142135623730951
var result = Math.E;
result = Math.LN2;
result = Math.LN10;
result = Math.LOG2E;
result = Math.LOG10E;
result = Math.PI;
result = Math.SQRT1_2;
result = Math.SQRT2;
document.write(result);

Math对象方法

var result = Math.round(7.7);   //四舍五入
result = Math.floor(3.9);       //返回小于参数值的最大整数
result = Math.ceil(3.9);        //返回大于参数值的最小整数
result = Math.abs(-9);          //绝对值
result = Math.max(7,9);         //最大值
result = Math.min(7,9);         //最小值
result = Math.pow(2,2);         //平方
result = Math.sqrt(4);          //根号
result = Math.log(10);          //返回以e为底的自然对数值
result = Math.exp(3);            //返回常熟e的参数次方
document.write(result);
//三角函数方法和数学里面的名字一致,前面有a的为反旋
Math.random()方法, 返回0到1之间的一个伪随机数, 可能等于0,但是一定小于1
//求10到15之间的随机整数
for(var i = 0; i < 30;i++){
    var num = Math.floor(Math.random() * 5 + 10);		
    document.write(num + "<br/>");
}
//求m 到  n之间的随机整数
function getRandon(min,max) {
    return Math.floor(Math.random() * (max - min) + min);
}
var result = getRandon(3,8);
document.write(result);

Date对象

var date = Date();
document.write(date);   //Fri May 08 2020 10:34:21 GMT+0800 (中国标准时间) 
一些其他合法的日期字符串写法
new Date(datestring)
new Date("2017-5-6")
new Date("2017/2/25")
new Date("2013-FEB-15")
new Date("FEB,15,2013")
new Date("FEB 15,2015")
new Date("february,15,2017")
new Date("february 15,2013")
new Date("15,february,2015")
//Sun May 08 2020 10:34:21 GMT+0800 (中国标准时间) 

猜你喜欢

转载自blog.csdn.net/qq_41424688/article/details/106817711
今日推荐