Deng
Deng
JavaScript入门 | odjBlog
    欢迎来到odjBlog的博客!

JavaScript入门

web前端学习 odjbin 4年前 (2021-08-25) 84次浏览 0个评论

Js 入门【8.13、10.52】

  • 是一种脚本语言、直接在页面使用 Js

  • Js 变量:与其他程序设计语言相同,是用来临时存储信息

    创建方法 1:var x=1; var x=2,name="zhangsan"

    创建方法 2:var x; x=1; 【弱数据类型】

    小贴士:Js 中的变量,区分类型,但没有 int 之类的关键词

  • Js 调试:alert 弹框调试、console.log 控制台输出调试

    作用:观察变量值的变化规律,是否符合程序设计的目的

    示例:alert(flag);

    ​ consoLe.log(flag);

    小贴士:先掌握熟练这两种方法,再学习其他调试方法

自定义函数

  • 自定义函数是完成某一功能的代码段,可重复执行,方便管理和维护。

  • 创建方法 1:这种是函数声明可以先使用后定义

    function fun1 ( ){

    代码片段

    return *** ;}

  • 创建方法 2:这种叫做函数表达式必须先定义后使用

    var fun1=function(x){

    return x+1; };

  <script type="text/javascript" src="index.js"></script>
</head>
<body>
</body>
</html>
、、.js:
1、
function add(n1,n2){
    var n3;
    n3=n1+n2;
    return n3;
}
var num=add(13,14);
console.log(num);
2、
var num1=function(n1,n2){
    var n3=n1+n2;
    return n3;
}
/*alert(num1(13,14));*/
var n=num1(14,14);
alert(n);

数据类型及转换

​ number string boolean

  • underfined :未定义,一般指的是已经声明,但是没有赋值的变量
  • null:空对象类型,var a=null,和 var a=""有区别;
  • 特殊类型:object、NaN
  • object:对象类型,在 js 常见的有 window,document,array 等
  • NaN:是 Number 的一种特殊类型,isNaN() ,如果是数字返回 false,不是数字返回 true
// var str="123";
// console.log(str*1+1);
// console.log(parseInt(str));
var str1="abc";
if (!isNaN(str1)) {
    console.log(parseInt(str1));
}else{
    console.log("is error");
    str1=0;
}
console.log(str1);
  • var str=0; console.log(Boolean(str));

    【0 是 false、非 0 是 true】

  • console.log(parseInt(str));
    console.log(parseFloat(str));
    console.log(Number(str));//优先

  • var str="123"; 【123 、123、 123】

  • var str="abv"; 【NaN、NaN、NaN】

  • var str="123a"; 【123、123、NaN】

  • var str="a123"; 【NaN、NaN、NaN】

  • var str="0123"; 【123 、123、 123】

  • var str="0123.154"; 【123 、123.154、 123.154】

  • var str=""; 【NaN、NaN、 0】 null 一样

    变量作用域

  • 作用域:全局变量、局部变量

  • 局部变量:在函数内部创建的变量,称为局部变量,其他函数不能使用。

  • 全局变量:在函数外部创建的变量,称为全局变量,在函数之间可以共享使用。

<script type="text/javascript" src="index.js"></script>
</head>
var n=9;
function fun1(){
    var n1=5;//局部变量
    var n=12;//全局变量 n
    // console.log(n1);
}
function fun2(){
    n=n-1;
}
function fun3(){
    console.log(n);
    console.log(n1);
}
fun1();
fun2();
fun3();

运算符

  • 比较运算符:用于比较两个值。结果是 true 或者 false

  • 运算符范围:>、>=、!=、<、<=

  • 实例 x<10 为 true //x=2

  • 运算符优先级

  • var x=2;

    var y=3;

    var flag=x<10 && y<5;

    console.log(flag); //true

程序控制语句

  • if else 语句 x>20.....

  • 多条件控制语句:成绩分布段,优秀满分

  • 循环语句:1+2+3+4+5+.....+100=5050

    for while do...while

    do{ sum=sum+i; i++;}while(i<=100)

字符函数

var str="48234444444555554";
console.log(str.substr(6,4));//起始位置,长度
console.log(str.substring(6,10));//起始位置,结束位置
var n=parseInt(str.charAt(16))
if(n%2==0){
consol.log("nv");
}else{
console.log("nan");
}
console.log(str.length);//获取长度
console.log(str.indexOf(1,4));//截取长度
/////////////////////////////////////////////
var str="aa,ttt,121,gg,kk,aa,bb";
var arr=str.split(",");
console.log(arr[0]);
console.log(str.concat(",55",",77",",00"));
console.log(arr.concat("55","77","00"));//数组长度扩大
console.log(str.replace("aa","imooc"))//只替换一个

日期函数

var d1=new Date();
var d2=new Date("2022-1-1");
console.log(d1.getDate());
console.log(d1.getMonth()+1);//从 0 开始,0-11
console.log(d1.getFullYear());
console.log(d1.getHours());
console.log(d1.getMinutes());
console.log(d1.getSeconds());
//距离 2022-1-1 元旦多少天
var n=d2.getTime()-d1.getTime();
console.log(parseInt(n/(24*3600*1000)));
//2021-8-13 15:58 日期格式化
function fun_FmtDate(){
    var d1=new Date();
    var yyyy,mm,dd,hh,mi,ss;
    var time;
    yyyy=d1.getFullYear();
    mm=d1.getMonth()+1;
    dd=d1.getDate();
    hh=d1.getHours();
    mi=d1.getMinutes();
    ss=d1.getSeconds();
    time=yyyy+"-"+mm+"-"+dd+" "+hh+":"+mi+":"+ss;
    return time;
}
console.log(fun_FmtDate());

数学函数

var n=16.654364;
console.log(Math.round(n));//取整数
console.log(n.toFixed(2));//保留两位小数
console.log(Math.min(2,6,81,1));//最小值
console.log(Math.max(2,6,81,1));//最大值
console.log(Math.abs(-3));//求绝对值

数组

// //声明或创建一个不指定长度的数组,又称实例化创建;
// var arrayObj=new Array();
// //声明或创建一个数组并指定长度的数组:
// var arrayObj=new Array(5);
// //声明或创建一个带有默认值的数组:
// var arrayObj=new Array(2,4,"a","y",8);
// //创建一个数组并赋值的简写·又称隐式创建数据
var arrayObj=[2,4,"a","y",8,5,1];
//数组赋值、字符下标、数组遍历
console.log(arrayObj[4]);
for(var str in arrayObj){
    console.log(arrayObj[str]);
}//用这个,快,方便
// var i=0;
// var n=arrayObj.length;
// for (i; i <n; i++) {
//  console.log(arrayObj[i]);
// }

JS 对表单元素进行设置

  • 表单的主要作用是在客户端接收用户的信息,然后将数据递交给后台的程序来操控这些数据

  • JS 做什么:设置或获取各种表单元素的值

  • 示例:利用 js 给列表框等表单元素初始化

1、用户名文本框

<body onload="show1()"><!--页面加载-->
    <form>
        <label>用户名</label>
            <input type="text" id="userName" name="userName" value="123"/>
            <input type="button" id="btn" onclick="show1()" value="btn"/>
    </form>
</body>
function show1(){
    //alert("123456");    document.getElementById("userName").value="imooc";
}

2、单选按钮用法

<form>
        <label>用户名</label>
            <input type="text" id="userName" name="userName" value="123"/><br>
            <input type="radio" name="xb" value="1" checked="checked">男<!--默认选中 -->
            <input type="radio" name="xb" value="0">女<br>
            <input type="button" id="btn" onclick="show1()" value="btn"/>
    </form>
</body>
function show1(){
    var xb=document.getElementsByName("xb");
    var xbText;
    if(xb[0].checked){
        xbText=xb[0].value;
    }else{
        xbText=xb[1].value;
    }
    alert(xbText);
}

3、列表框

  • 年月日联动
<body onload="ymd()">
    <form>
        <select name="yyyy" id="yyyy" onchange="selectYmd()"></select>年
        <select name="mm" id="mm" onchange="selectYmd()"></select>月
        <select name="dd" id="dd"></select>日
        <input type="button" value="删除列表框条目" onclick="deleteSelect()" ><br>
        <!--通过序号改变头像-->
        <img id="logoImg" src="image/toolbar/1.png">
        <select id="logo" onchange="selectLogo()"></select>
    </form>
js:、、、、、、、、、、、、、、、、、、、
function ymd(){
    //获取 id=yyyy 的控件【表单元素】
    var yyyy=document.getElementById("yyyy");
    var mm=document.getElementById("mm");
    var dd=document.getElementById("dd");
    //动态年份更新
    var date=new Date();
    var year=parseInt(date.getFullYear());
    initSelect(yyyy,1999,year);
    initSelect(mm,1,12);
    initSelect(dd,1,31);
    //获取列表框长度
    var n=yyyy.length;
    //列表框选中某一条目、默认年份中间位置
    yyyy.selectedIndex=Math.round(n/2);
}
/*g 给列表框赋值,传递三个参数:表单元素,开始值,结束值 */
function initSelect(obj,start,end){
    for (var i = start; i<=end; i++) {
        obj.options.add(new Option(i,i));
    }
}
//动态获取闰月、闰年等月份关系
function selectYmd(){
    var yyyy=document.getElementById("yyyy");
    var mm=document.getElementById("mm");
    var dd=document.getElementById("dd");
    var m=parseInt(mm.value);
    var dayEnd;
    if(m==4 || m==6 || m==9 || m==11){
        dayEnd=30;
    }else if(m==2){
        dayEnd=28;
        y=parseInt(yyyy.value);
        if ((y%4==0&&y%100!=0) || y%400==0) {
            dayEnd=29;
        }
    }else{
        dayEnd=31;
    }
    //将某个列表框的条目数设置为 0,效果为删除
    dd.options.length=0;
    initSelect(dd,1,dayEnd);
}
//删除列表框的某一个条目。即:按索引号删除
function deleteSelect(){
    var dd=document.getElementById("dd");
    for (i =  dd.length; i >=0; i--) {
         dd.options.remove(0);//全删了
    }
}
//完成作业:第一种全删、全加,第二种方法实现年月日的三级联动
function initLogo(){
    var logo= document.getElementById("logo");
    for(i=1;i<=15;i++){
        logo.options.add(new Option(i,i));
    }
}
function selectLogo(){
    var logo= document.getElementById("logo");
    var n=logo.value;
    // alert(n);、测试、F12
    var logoImg=document.getElementById("logoImg");
    logoImg.src="image/toolbar/"+n+".png";
}

4、全选、全不选、反选【复选框】

<body >
    <form>
        <input type="checkbox" name="interest" value="1" /><label>游泳</label>
        <input type="checkbox" name="interest" value="2"/><label>爬山</label>
        <input type="checkbox" name="interest" value="3"/><label>看书</label>
        <input type="checkbox" name="interest" value="4"/><label>听歌</label>
        <input type="button" id="btn1" value="全选" onclick="checkInterest()">
        <input type="button" value="反选" onclick="checkInterest1()" >
    </form>
</body>
</html>
var flag=true;
function checkInterest(){
    var interest=document.getElementsByName("interest");
    for(i=0;i<interest.length;i++){
        interest[i].checked=flag;
    }
    if(flag){
        document.getElementById("btn1").value="全不选";
    }else{
        document.getElementById("btn1").value="全选";
    }
    flag=!flag;//开关变量
}
function checkInterest1(){
    var interest=document.getElementsByName("interest");
    for(i=0;i<interest.length;i++){
        interest[i].checked=!interest[i].checked;
        // console.log(interest[i].value);
    }
}

事件

  • 事件是指被程序发现的行为或发生的事情,而且它可能会被程序处理
  • 特点:js 的事件,都是以 on 开头,有 onclick、onchange、onload...
  • 分类:键盘事件、鼠标事件、表单事件....
  • DOM【Document Object Model】
  • 将文档(页面)表现为结构化的表示方法,使每一个页面元素都是可操控,DOM 将网页和脚本以及其他的编程语言联系了起来。
  • 特点:利用 js 控制页面中的所有元素,使页面更加“聪明”
  • 分类:元素节点、属性节点、文本节点
  • 常用 DOM 操作
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
已稳定运行:3年255天5小时18分