JavaScript02—JavaScript对象

String对象

  • 声明方式:var str = "hello"; var str2 = new String("hello!");
  • 属性:str.length
  • 方法:
    • 大小写转换str.toLowerCase()/str.toUpperCase()
    • 获取指定位置字符:str.charAt(指定字符位置)
    • 查询指定字符串str.indexOf(findstr)/str.lastIndexOf:从后面找起
    • **获取字符串**str.substring(开始位置,[结束位置])
    • 替换字符串:str.replace(目的字符串,替换字符串),返回替换后的字符串
    • 拆分字符串:str.split(分割用的字符串,[返回数组的最大长度])

Number对象

  • 声明:var num = 12.987;
  • 方法:
    • num.toFixed(number):转化为字符串,保留小数点后指定位数number 四舍五入

Array对象

  • 声明:数组的长度是可变的
    • var a1 = new Array();
    • var a2 = new Array(3);
    • var a3 = new Array(100,"a",true);
    • var a4 = [100,200,300];
  • 二维数组:数组中的元素是数组
  • 方法:
    • x.reverse()反向数组,返回数组
    • x.sort()数组排序,按字符顺序,32,23,111,12排序后111,12,23,32
var arr=[111,12,34,32];
arr.sort();//结果:[111, 12, 32, 34]
arr.sort(function sotFunc(a,b){return a-b;});
//结果:[12, 32, 34, 111]

Math对象

Math对象无需创建可以直接使用

Date对象

  • 声明:var now = new Date(); //自动保存当前时间初始化
    var now = new Date("2017/7/4 14:21"); //自动保存当前时间初始化
  • 方法:
    • 读取时间(日)day.getDate()//结果:4
    • 读取时间(星期)day.getDay()//结果:2
    • 读取时间(月)数组形式来存储月份,结果+1 day.getMonth()//结果:6实际月份为(6+1)
    • 读取时间(年) day.getFullYear() //结果:2017
    • 把 Date 对象的时间部分转换为字符串:toTimeString() “14:29:31 GMT+0800 (中国标准时间)”
    • 把 Date 对象的日期部分转换为字符串:toDateString() “Tue Jul 04 2017”
    • 根据本地时间格式,把 Date 对象的时间部分转换为字符串:toLocaleTimeString()”下午2:29:31”
    • 根据本地时间格式,把 Date 对象的日期部分转换为字符串:toLocaleDateString() “2017/7/4”
使用Date对象获取当前具体时间
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>今日是何时</title>
<script type="text/javascript">
function time(){
    var now = new Date();
    var year = now.getFullYear();
    var month = now.getMonth()+1;
    var date = now.getDate();
    var hour = now.getHours();
    var minute = now.getMinutes();
    var second = now.getSeconds();

    var ary = ["日","一","二","三","四","五","六"];
    var day = now.getDay();
    var str = "现在是:" 
        + year + "年" + month + "月" + date + "日 "
        + "周" + ary[day] + " "
        + hour + ":" + minute + ":" + second;
    alert( str );
}
</script>
</head>
<body>
    <div style="margin:0 auto; width:80px;">
        <input type="button" value="今日是何时"
                        onclick="time();" />
    </div>
</body>
</html>

RegExp对象

  • RegExp对象表示正则表达式
  • 声明:var reg1 = /^\d{3,6}$/**gi**; var reg2 = new RegExp("^\d{3,6}$");
    g:全局匹配
    i:忽略大小写检测

  • 方法:

    • reg.test(str)检索字符串中的指定值,返回true或false
    • str.replace(regexp,toStr) 返回替换后的结果
    • str.match(regexp) 返回匹配字符串的数组
    • str.search(regexp) 返回匹配字符串的首字符索引
使用RegExp对象验证账号密码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录系统</title>
<style type="text/css">
#d1 {
    //border: 1px solid black;
    width: 200px;
    margin: 20% auto;
}
h1, p {
    text-align: center;
}
</style>
<script type="text/javascript">
function checkName( emt ){
    //调用时,传入this(正在操作的那个文本输入框)
    console.log("失去焦点了!开始检查账号!");
    console.log( emt );

    var name = emt.value;
    console.log("输入的账号是:" + name);

    var regexp = /^[a-z0-9]{3,10}$/;
    var isValid = regexp.test(name);

    if( isValid ){
        return true;
    } else {
        alert("输入的账号,不是3~10位的小写字母或数字");
        return false;
    }
}
function checkPassword( emt ){
    console.log( emt );
    var password = emt.value;

    var regexp = /^.{8,30}$/;
    var isValid = regexp.test(password);
    if( isValid ){
        return true;
    } else {
        alert("输入的密码,不是8到30位的!");
        return false;
    }
}
</script>
</head>
<body>
    <div id="d1">
        <h1>登录系统</h1>
        <form action="login.do">
            <p>
                账号:
                <input type="text" id="name" 
                    onblur="checkName(this);"/>
                <!-- onblur属性,用于对失去焦点事件进行处理 -->
            </p>
            <p>
                密码:
                <input type="password" id="password"
                    onblur="checkPassword(this);"/>
            </p>
            <p>
                <input type="submit" value="登录"/>
                <a href="#">注册</a>
            </p>
        </form>
    </div>
</body>
</html>

Function对象

  • JS中函数就是function对象
  • 函数:默认返回undefined,没有函数重载,无论参数多少调用同一个函数,没有接收到参数的默认为undefined
  • arguments对象:表示函数参数的数组
使用arguments对象模拟重载
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>函数的定义</title>
<script type="text/javascript">
function add( a ){
    a++;
    console.log( a );
}

//让add引用变量,指向了一个新的function对象
function add( a, b ){
    //add(10),会将10传入给a;参数b没有传入,默认值是undefined
    console.log( a + ", " + b ); //10, undefined
    var result = a + b;
    console.log( result );
}

// 使用隐含对象arguments,获得传入的参数
// 对于传入的参数个数是可变的,可使用arguments对象
function add(){
    //console.log( arguments );
    if( arguments.length == 0 ){
        console.log( "没有传入任何参数." );
    } else if( arguments.length==1 ){
        console.log( ++arguments[0] );
    } else {
        var sum = 0;
        for( var i=0; i<arguments.length; i++ ){
            sum += arguments[i];
        }
        console.log( sum );
    }
}
</script>
</head>
<body>
    <h1>函数的定义</h1>
    <input type="button" onclick="add();" value="测试:不传入参数"/>
    <input type="button" onclick="add(10);" value="测试:传入10"/>
    <input type="button" onclick="add(10, 23);" 
                            value="测试:传入(10, 23)"/>

</body>
</html>
  • eval函数:计算表达式字符串,只接受原始字符串作为参数 ,参数不合法则抛出异常
使用eval()函数实现简单计算机
<!--input+select-->
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>js</title>
    <script type="text/javascript">
    function method() {
        var num1 = document.getElementById("num1").value;
        var num2 = document.getElementById("num2").value;
        var operator = document.getElementById("operator").value;
        var str = num1+operator+num2;
        console.log(eval(str));
        var result = document.getElementById("result");
        result.innerText = eval(str);
    }
    </script>
</head>
<body>
<input id="num1" type="text"/>
<select id="operator">
    <option value="+">+</option>
    <option value="-">-</option>
    <option value="*">*</option>
    <option value="/">/</option>
</select>
<input id="num2" type="text"/>
<input type="button" value="=" onclick="method();"/>
<span id="result"></span>
</body>
</html>
//使用button+input实现
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>简单计算器</title>
<script type="text/javascript">

// 用于判断,是否是一个全新的计算过程
var isNewCalc = true;

function clk( btn ){
    //获得被点击的按钮 上面的数字
    console.log( btn.value );
    //获得文本输入框
    var inputText = document.getElementById("txtExp");

    if( btn.value == "=" ){
        var result = eval( inputText.value );
        inputText.value = result;
        isNewCalc = true;
    } else if( btn.value=="C" ){
        inputText.value= "0";
        isNewCalc = true;
    } else if( btn.value=="DEL" ){
        var txt = inputText.value;
        inputText.value = txt.substring(0, txt.length-1);
    } else {
        if( isNewCalc ){
            inputText.value = "";
            isNewCalc = false;
        }
        inputText.value += btn.value;
    }
}
</script>
</head>
<body>
    <h1>简单计算器</h1>
    <div style="border: 1px solid black; width: 270px; padding: 5px;">
        <p>
            <input type="button" value="1" onclick="clk(this);" />
            <input type="button" value="2" onclick="clk(this);" />
            <input type="button" value="3" onclick="clk(this);" />
            <input type="button" value="4" onclick="clk(this);" />
            <input type="button" value="5" onclick="clk(this);" />
            <input type="button" value="+" onclick="clk(this);" />
            <input type="button" value="-" onclick="clk(this);" />
            <input type="button" value="=" onclick="clk(this);" />
        </p>
        <p>
            <input type="text" id="txtExp" size="30" value="0"/>
            <input type="button" value="DEL" onclick="clk(this);" />
            <input type="button" value="C" onclick="clk(this);" />
        </p>
    </div>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值