<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
/*js
* 1、介绍js
* 2、语法
* 1、注释 //单行注释 /* 多行注释* /
* 2、关键字var,typeof 官方已经赋予了特定的含义
* 3、数据类型 5个 number整数 string数组 boolean类型 null空值 undefined未赋值
* 4、变量:内容中的一个容器,用来存储单个值,可以变化
* var num = 12, var num; num = 11;
* 变量只有在第一次声明的时候需要使用var, 在后续的使用中直接通过
* 变量名来进行使用即可
* 5、运算符:
* 赋值运算符:= +=
* 比较运算符:==仅比较值 ===比较值也比较类型
* 逻辑运算符:一定会有一个boolean类型的结果
* 表达式1&&表达式2,只有当2个表达式的结果都为true的时候,结果表达式的结果才是true
* 表达式1||表达式2,只有当2个表达式的结果都为false的时候,结果表达式的结果才是false
* !表达式 , 取反,
* 注意 : && || 具有短路的功能,第一个表达式已经能够确定整个表达式的结果了,第二个表达式不进行计算
* 算术运算符: % 取余, ++ 自增1 , 可以写在前面也可以写在后面
*
* 6. 数组:内存中的一个容器,连续的区间,可以存储多个值
* 定义方式有2种:var arr = new Array(num) num 表示的是数组的长度
* var arr = [12,32,1,5];
* 注意:数组在创建的时候有了初始长度,在程序中数组的长度是可以改变的,自动的扩容
* 数组的内容的数据类型并没有做强制的要求
* 操作数组(存取)是通过数组的下标进行的,数组的下标是从 0 开始的,最大的下标是长度-1
* 7. 字符串:使用“” ‘’ 括起来的内容,就叫字符串,字符串会被原样的输出
* charAt(index) 获取指定位置的字符,index 也是从0开始的
* indexOf(value) 查询某个内容在字符串中第一次出现的位置,如果有则返回具体的位置,没有则返回-1
* subString(num1,[num2]),根据下标截取字符串的一段,接受一个数字的话,则表示截取到最后
* 接受2个值的话,则表示截取一部分[), 左闭右开
* split() 根据规则切割字符串,返回一个数组
* 8.语句部分
* 分支结构
* if(表达式){if代码块} , 只有当表达式的结果为true的时候,代码块才会执行,if可能执行,也可能不执行
* if- else , 二选一的场景 ,必然会有一个会执行的
* if -else if - else if... - else , 多选一的语法
* switch
* 循环结构 3 个循环, while , for , forin
* 注意 : 循环条件 , 循环体 , 变量的更新
* while(表达式){ 只有当表达式的结果为true的时候,才会执行循环体内容
* 循环体
* 变量的更新
* }
* for(变量的声明, 循环条件,变量的更新){
* 循环体
* }
* for(index in arr){ foreach循环
*
* }
*
* */
// 需求:浏览器输入一个4位数的卡号,然后分别获取个位数,十位数,百位数,千位数的数字
// 并算出总和,如果和大于20的话,则表示中奖了,在控制台输出对应位数的数字
// 以及他们的和,并告诉他中奖了,奖品自定义
// 1,运算符
// 2,分支结构
//方法①
// var kh=prompt("请输入4位数卡号");
// var qian=(kh.charAt(0))
// var bai=(kh.charAt(1))
// var shi=(kh.charAt(2))
// var ge=(kh.charAt(3))
//
// var sum=0
// sum=parseInt(qian)+parseInt(bai)+parseInt(shi)+parseInt(ge)
//
// if (sum>20) {
// alert("恭喜中奖,奖品为劳斯莱斯5元代金券一张")
// } else{
// alert("差点中奖,请继续购买")
// }
//
// console.log("千位是:"+qian)
// console.log("百位是:"+bai)
// console.log("十位是:"+shi)
// console.log("个位是:"+ge)
// console.log(sum)
//方法②
// var kahao=prompt("请输入4位数卡号");
// for (var i = 0; i < 4; i++) {
// console.log(kahao.charAt(i))
// }
// var sum=0;
// for (a in kahao) {
// sum=sum+parseInt(kahao[a])
// }
// console.log(sum)
// if (sum>20) {
// alert("恭喜中奖")
// }else{
// alert("你没中奖")
// }
//方法③
// var kahao=prompt("请输入4位数卡号");
// for (var i = 0; i < 4; i++) {
// console.log(kahao.substring(i,i+1))
// }
// var sum=0;
// for (a in kahao){
// sum+=parseInt(kahao[a]);
// }
// if (sum>20) {
// alert("喜提空气饮料一瓶")
// }else{
// alert("谢谢惠顾")
// }
// console.log(sum)
//1、Switch
//2、循环终端
//3、函数(系统函数,自定义函数)
//分支结构:if if else if-else if-else if
//switch - 多重判断,作用和else if
/**
* switch(表达式){ 要么是num, String
case 常量1 :
语句;
break; // 结束当前语句
case 常量2 :
语句;
break;
.....
default:
语句;
break; // 可以省略
}
*/
// var num=prompt("请输入一个1-7之间的数字");//num其实是一个字符串
// //面试题:break作用,switch语句在什么场景下会结束
// switch (num){
// case "1"://num是不是等于1,相当于num=="1"
// console.log("今天是星期一,提劳斯莱斯")
// break;//结束当前代码
// case "2":
// console.log("今天是星期二,提劳斯莱斯")
// break;
// case "3":
// console.log("今天是星期三,提劳斯莱斯")
// break;
// case "4":
// console.log("今天是星期四,提劳斯莱斯")
// break;
// case "5":
// console.log("今天是星期五,提劳斯莱斯")
// break;
// case "6":
// console.log("今天是星期六,提劳斯莱斯")
// break;
// case "7":
// console.log("今天是星期日,提劳斯莱斯")
// break;
// default://以上如果都没有匹配上的话,则执行这里的代码,相当于else
// console.log("地球上暂时没有这个日期")
// break;
// }
//
//循环终端
/**
* 执行循环的时候,因为某些操作符合某个规定的时候
* 导致循环终止
*
*
*/
//需求:打印1-5
//区别:1、应用场景(continue只能用在循环中),2、在循环中的区别
// for (var i = 1; i <= 5; i++) {
// if(i==3){//循环出现3,终止循环
break;//终止循环,停止循环,执行循环后面的代码
// continue;//终止本次循环,执行下一次循环
// }
// console.log(i)//打印
// }
/**
*函数
* 1、系统函数:语言本身为我们提供的一些可以直接使用的方法
* 2、自定义函数:为了实现某些功能,我们自己写的方法,
*
* parseInt()将字符串类型的数字转换成number类型
*
* isNaN()判断是不是一个数字
* 他不是一个数字吧?
* true表示不是一个数字;
* false表示是一个数字
*
*
*/
// var a=prompt("请输入一个数字");
// var result=isNaN(a);
// console.log(result)
//需求:判断写一个方法,接收2个参数,其中一个是数组,一个是字符串
//作用:判断这个字符串在数组中是不是存在,如果存在则返回1,如果不存在返回0
//函数的语法:
/*createCode:方法名,标识符
* 方法名(标识符)定义的规则:
* 1、不能使用关键字
* 2、遵循驼峰命名规则:1个单词组成小写;2个及以上单词组成,从第二个单词开始首字母大写
* 3、组成部分:大小写字母、数字、_、$组成
* 4、数字不能作为开始
*
* 参数:当前方法执行时需要满足的条件
* function createCode(参数){
* 方法体,具体的代码,功能的实现
* }
*
* */
//需求:使用循环中断优化循环录入5个人的考试成绩,输入abc如何处理?
// var kaoshi=new Array(0);//定义一个考试成绩存储容器
// var zong=0;//总成绩
// for (i=0;i<5;i++) {//循环5次,输入5次成绩
// var num=parseInt(prompt("请输入考试成绩:"));//输入成绩的窗口
// if (isNaN(num)) {//如果输入的不是一个数字则直接弹窗输入错误
// alert("请重新正确成绩")
// break;//输入错误直接终止,算出已输入的几个成绩平均值
// }
// kaoshi[i]=num;//将输入的值存储在kaoshi容器中
// zong+=num;//将输入的成绩加进zong总成绩中
//
// }
// //用总成绩÷成绩数组的长度得到平均成绩
// var pj=zong/kaoshi.length;
// alert("平均成绩为:"+pj)
// console.log(kaoshi)
// console.log(pj)
// var kaoshi=new Array(0);
// var zong=0;
//
// var flag = false;
// for (i=0;i<5;i++) {
// var num=parseInt(prompt("请输入考试成绩:"));
// if (isNaN(num)) {
// alert("请输入正确数字!")
// break;
// }
// kaoshi[i]=num;
// zong+=num;
// flag = true;
//
// }
//
// if(flag){
// var pj=zong/ kaoshi.length;
// alert("平均成绩为:"+pj)
// console.log(kaoshi)
// console.log(pj)
// }
//自定义一个方法,问候的方法,方法接收一个名字,被调用的时候,在控制台输出:hello + 传递过来的名字
// function hello(name){//定义一个自定义函数,hello为方法名,name为姓名
// if (isNaN(name)) {//判断输入的是不是数字,不是数字进来
// alert("hello"+name)//弹窗
// console.log("hello"+name)//工作台输出
// }else{//输的是数字进这里
// alert("请输入正确的名字")
// }
// }
// var xingming=hello(prompt("请输入姓名"))
//自定义一个方法,实现字符串中和indexOf()方法一样的功能,返回字符串中指定字符的位置,没有的话返回-1
//*******暂时不会写*******
function weiZhi(index,xy){
var a=-1
for (i in xy) {
if (index==xy[i]) {
a=i
}
}
alert(a)
}
var zimu="abcdefghijklmn";
var result=weiZhi("h",zimu)
</script>
</body>
</html>