day03_js学习笔记_02_js的内建对象、js的函数

简介: day03_js学习笔记_02_js的内建对象、js的函数======================================================================================================================...

day03_js学习笔记_02_js的内建对象、js的函数

=============================================================================
=============================================================================
涉及到的知识点有:
    三、js的内建对象
        (1) Number对象
        (2) Boolean对象
        (3) String对象
        (4) Array对象
        (4) Array对象
        (5) Date对象
        (6) Math对象
        (7 )RegExp对象
    四、js的函数(相当于java中的方法)
        1、js函数定义的方式
            (1) 普通方式
            (2) 匿名函数方式(开发中常用该方式)
            (3) 对象函数方式(开发中该方式基本不用)
        2、js函数的参数
        3、js函数的返回值
        4、js的全局函数(js内置定义好的函数(方法),可以直接调用)
            (1) 编码和解码函数
            (2) 强制类型转换函数(即通过构造方法传参转换)
            (3) 转成数字的函数(方法)
            (4) eval()函数(方法)        
=============================================================================
=============================================================================
day03_js学习笔记_02_js的内建对象、js的函数
-----------------------------------------------------------------------------
一、js的简介
二、js的基本语法
-----------------------------------------------------------------------------
三、js的内建对象
    (1) Number对象
        创建方式:
            var myNum = new Number(value);  // 传入参数,强转成数字类型的数据
            var myNum = Number(value);  // 简写方式
                布尔类型转数字类型     true转成1    false转成0
                字符串类型转数字类型   不能强转
        属性和方法:
            toString() 把数字转成字符串
            valueOf() 返回一个 Number 对象的基本数字值
        示例:
            var num = new Number(5); // 装箱
            alert(typeof num); // object 
            alert(typeof num.toString()); // string 
            alert(typeof num.valueOf());  // number 拆箱
--------------------------------------
    (2) Boolean对象
        创建方式:
            var bool = new Boolean(value); // 传入参数,强转成布尔类型的数据     
            var bool = Boolean(value); // 简写方式
                数字类型强转成布尔类型时     非零就是true            零就是false
                字符串类型强转成布尔类型时    非空字符串就是true       空字符串("")就是false
        属性和方法:
            toString() 把布尔转成字符串(即把逻辑值转换为字符串,并返回结果)
            valueOf() 返回一个 Boolean 对象的基本值(是boolean类型的)
        示例:
            var bool = new Boolean(5); // 装箱
            alert(typeof bool); // object 
            alert(typeof bool.toString()); // string 
            alert(typeof bool.valueOf());  // boolean 拆箱
--------------------------------------            
    (3) String对象
        创建方式:
            var str = new String(s);
            var str = String(s);
                注意:var str = "helllo"; 
                // 在js中此时的str不是对象,是一个伪对象,可以理解为包装类对象,也可以调用方法,但是在js中其本质不是对象哦!
                // 而在java中,此时的str是一个对象。
        属性和方法:
            length 字符串的长度属性
            
            charAt() 返回索引的字符
            charCodeAt() 返回索引字符的unicode
            indexOf() 返回字符的索引
            lastIndexOf() 逆向返回字符的索引
            split() 将字符串按照特殊字符切割成数组
            substr() 从起始索引号提取字符串中指定数目的字符(注意:第二个s不是大写,不是驼峰式的写法哦)
            substring() 提取字符串中两个指定的索引号之间的字符(包头不包尾)
            toUpperCase() 转大写
        示例:
            // var str = new String("a-b-cdc-FG");
            var str = "a-b-cdc-FG"; // 伪对象
            alert(str.length); // 10
            alert(str.charAt(4)); // c
            alert(str.charCodeAt(4)); // 99
            alert(str.indexOf("c")); // 4
            alert(str.lastIndexOf("c")); // 6
            var arr = str.split("-");
            for (var i = 0; i < arr.length; i++) {
                alert(arr[i]);
            }
            alert(str.substr(2, 3)); // b-c
            alert(str.substring(2, 3)); // b (包头不包尾)
            alert(str.toUpperCase()); // A-B-CDC-FG
            
            
            
            W3School离线手册(2014.3.24)
--------------------------------------
    (4) Array对象
        创建方式:
            var arr = new Array(); // 创建一个空数组
            var arr = new Array(size); // 创建一个指定长度的数据(超出长度还能加元素)
            var arr = new Array(element0, element1, ..., elementn); // 创建数组并直接实例化元素
            var arr = []; // 创建一个空数组
            var arr = [1, 2, 5, "java"]; // 创建数组并直接实例化元素
        属性和方法:
            length 数组的长度属性
            
            join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔
            pop() 删除并返回数组的最后一个元素
            push() 向数组的末尾添加一个或更多元素,并返回新的长度
            reverse() 反转数组
            sort() 对数组的元素进行排序(按照字符串字典顺序进行排序)
     示例:
var arr = [ 3, 7, 1, "java", 'js', true, 4 ]; alert(arr.length); // 7 alert(arr.join("-")); // 3-7-1-java-js-true-4 alert(arr.pop()); // 4 alert(arr); // 3,7,1,"java",'js',true alert(arr.push("R")); // 8 alert(arr); // 3,7,1,"java",'js',true,R alert(arr.reverse()); // 4,true,js,java,1,7,3 数组反转 alert(arr.sort()); // 1,3,4,7,java,js,true 按照字符串字典顺序进行排序 -------------------------------------- (5) Date对象 创建方式: var myDate = new Date(); var myDate = new Date(毫秒值); // 代表从1970-1-1到现在的一个毫秒值 属性和方法: getFullYear() 年 getMonth() 月 0-11 getDate() 日 1-31 getDay() 星期 0-6(星期日是0) getTime() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数 toLocalString() 根据本地时间格式,把 Date 对象转换为字符串 示例: var date = new Date(); alert(date.toString()); // Mon Apr 23 2018 09:38:13 GMT+0800 (中国标准时间) alert(date.toLocaleString()); // 2018/4/23 上午9:38:13 alert("year:" + date.getFullYear()); // 2018 alert("month:" + date.getMonth()); // 3 alert("date:" + date.getDate()); // 23 alert("day:" + date.getDay()); // 1 var time1 = date.getTime(); var time2 = 3 * 24 * 60 * 60 * 1000; alert(new Date(time1 + time2).toLocaleString()); // 2018/4/26 上午9:38:13 -------------------------------------- (6) Math对象 创建方式: Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。 您无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。(相当于java中的静态成员变量和静态成员方法) 属性和方法: PI 圆周率 abs() 绝对值 ceil() 对数进行向上舍入 floor() 对数进行向下舍入 pow(x, y) 返回 x 的 y 次幂 random() 0-1之间的随机数[0.1) round() 四舍五入 示例: var x = "-897"; alert(Math.abs(x)); // 897 var x = 12.34; var y = 2; var z = 4; alert(Math.ceil(x)); // 13 alert(Math.floor(x)); // 12 alert(Math.round(x)); // 12 alert(Math.pow(y, z)); // 16 alert(Math.random()); // 0-1之间的随机数[0.1) -------------------------------------- (7 )RegExp对象 创建方式: var reg = new RegExp(pattern); var reg = /^正则规则$/; 规则的写法: 方括号用于查找某个范围内的字符: [0-9] 查找任何从 0 至 9 的数字 [A-Z] 查找任何从大写 A 到大写 Z 的字符 [a-z] 查找任何从小写 a 到小写 z 的字符 [A-z] 查找任何从大写 A 到小写 z 的字符 [abc] 查找方括号之间的任何字符 [^abc] 查找任何不在方括号之间的字符 元字符(Metacharacter)是拥有特殊含义的字符: . 查找单个字符,除了换行和行结束符 \d 查找数字 \D 查找非数字字符 \w 查找单词字符 \W 查找非单词字符 \s 查找空白字符 \S 查找非空白字符 b\ 匹配单词边界 B\ 匹配非单词边界 量词: n+ 出现至少一次 n* 出现0次或多次 n? 出现0次或1次 {5} 出现5次 {2,8} 出现2到8次 方法: test(str) 检索字符串中指定的值。返回 truefalse 示例: 校验邮箱: var reg = /^[A-z]+[A-z0-9_-]*\@[A-z0-9]+\.[A-z]+$/; var email = "haohao_827@163.com"; alert(reg.test(email)); ----------------------------------------------------------------------------- 四、js的函数(相当于java中的方法) 1、js函数定义的方式 (1) 普通方式 语法: function 函数名(参数列表) { 函数体; } 示例: function method() { alert("xxx"); } method(); (2) 匿名函数方式(开发中常用该方式) 语法: function(参数列表) { 函数体; }; 示例: var method = function() { alert("yyy"); }; method; // 不执行函数体 method(); // 执行函数体 用处: 后面学BOM时会学一个定时器,那个地方会用到匿名函数。 // fun(函数, number); fun(function(){...}, 5); (3) 对象函数方式(开发中该方式基本不用) 语法: new Function(参数1, 参数2, ..., 函数体); 注意: 参数名称必须使用字符串形式,最后一个默认是函数体且函数体也需要字符串形式。 示例: var fn = new Function("a", "b", "alert(a+b)"); fn(2, 5); -------------------------------------- 2、js函数的参数 (1) 形参没有用var去修饰。 (2) 形参和实参个数不一定要相等。 (3) arguments是一个数组,会将传递的实参进行封装(作用:使传递的多余实参能够派上用场) 示例: function fn(a, b, c) { // var sum = a + b + c; // alert(sum); // arguments是个数组,会将传递的实参进行封装 for (var i = 0; i < arguments.length; i++) { alert(arguments[i]); } } fn(1, 2, 4, 8); -------------------------------------- 3、js函数的返回值 (1) 在定义函数的时候不必表明是否具有返回值。 (2) 返回值仅仅通过return关键字就可以了。return以后的代码不执行了。 示例: function fn(a, b) { return a + b; // alert("xxxx"); // return以后的代码不执行了 } alert(fn(2, 3)); -------------------------------------- 4、js的全局函数(js内置定义好的函数(方法),可以直接调用) (1) 编码和解码函数 encodeURI() 把字符串编码为 URI(常用) decodeURI() 解码某个编码的 URI(常用) encodeURIComponet() 把字符串编码为 URI 组件 decodeURIComponent() 解码一个编码的 URI 组件 escape() 对字符串进行编码 unescape() 对由 escape() 编码的字符串进行解码 三者区别: 进行编码的符号范围不同,实际开发中常使用第一种。 示例: var url = "http://www.baidu.com?name=zhangsan&password=123" alert(encodeURI(url)); // http://www.baidu.com?name=zhangsan&password=123 alert(encodeURIComponent(url)); // http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhangsan%26password%3D123 alert(escape(url)); // http%3A//www.baidu.com%3Fname%3Dzhangsan%26password%3D123 (2) 强制类型转换函数(即通过构造方法传参转换) Number() 把对象的值转换为数字 Boolean() 把对象的值转换为布尔值 String() 把对象的值转换为字符串 注意: 数字类型强转成布尔类型时 非零就是true 零就是false 字符串类型强转成布尔类型时 非空字符串就是true 空字符串("")就是false 布尔类型转数字类型 true转成1 false转成0 字符串类型转数字类型 不能强转 将number\boolean类型转成string类型,已经有了 对象名.toString()方法了,一般不用该类的构造方法了。 (3) 转成数字的函数(方法) parseInt() parseFloat() 注意: 1、boolean类型不能通过上面两种方式转为number类型。 2、string类型可以将数字字符串转换成number类型,例如:"123a3sd5"则转成123。 (4) eval()函数(方法) 作用: 将字符串当作脚本进行解析运行。 示例: var str = "var a = 2; var b = 3; alert(a + b)"; eval(str); // 5 function print(str) { eval(str); } print("自定义的逻辑"); // 相当于代码注入:你写的什么逻辑,它就按照你的什么逻辑执行!那真是太吊了! // function函数相当于一个空壳子,通过外面传进来的字符串的逻辑来解析运行,实现了js的代码注入 注意: java中有代码注入吗? 答:有。 =============================================================================

 

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
6月前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
28天前
|
编解码 JavaScript 前端开发
【Java进阶】详解JavaScript的BOM(浏览器对象模型)
总的来说,BOM提供了一种方式来与浏览器进行交互。通过BOM,你可以操作窗口、获取URL、操作历史、访问HTML文档、获取浏览器信息和屏幕信息等。虽然BOM并没有正式的标准,但大多数现代浏览器都实现了相似的功能,因此,你可以放心地在你的JavaScript代码中使用BOM。
69 23
|
1月前
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
|
6月前
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
3月前
|
JavaScript 前端开发
JavaWeb JavaScript ③ JS的流程控制和函数
通过本文的详细介绍,您可以深入理解JavaScript的流程控制和函数的使用,进而编写出高效、可维护的代码。
98 32
|
2月前
|
JavaScript 前端开发 Java
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
柯里化是一种强大的函数式编程技术,它通过将函数分解为单参数形式,实现了灵活性与可复用性的统一。无论是参数复用、延迟执行,还是函数组合,柯里化都为现代编程提供了极大的便利。 从 Redux 的选择器优化到复杂的数据流处理,再到深度嵌套的函数优化,柯里化在实际开发中展现出了非凡的价值。如果你希望编写更简洁、更优雅的代码,柯里化无疑是一个值得深入学习和实践的工具。从简单的实现到复杂的应用,希望这篇博客能为你揭开柯里化的奥秘,助力你的开发之旅! 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
6月前
|
JSON 前端开发 JavaScript
JavaScript中对象的数据拷贝
本文介绍了JavaScript中对象数据拷贝的问题及解决方案。作者首先解释了对象赋值时地址共享导致的值同步变化现象,随后提供了五种解决方法:手动复制、`Object.assign`、扩展运算符、`JSON.stringify`与`JSON.parse`组合以及自定义深拷贝函数。每种方法都有其适用场景和局限性,文章最后鼓励读者关注作者以获取更多前端知识分享。
68 1
JavaScript中对象的数据拷贝
|
6月前
|
JavaScript 前端开发 Java
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
本文介绍了JavaScript中常用的函数和方法,包括通用函数、Global对象函数以及数组相关函数。详细列出了每个函数的参数、返回值及使用说明,并提供了示例代码。文章强调了函数的学习应结合源码和实践,适合JavaScript初学者和进阶开发者参考。
81 2
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
|
6月前
|
前端开发 JavaScript 开发者
除了 Generator 函数,还有哪些 JavaScript 异步编程解决方案?
【10月更文挑战第30天】开发者可以根据具体的项目情况选择合适的方式来处理异步操作,以实现高效、可读和易于维护的代码。
|
6月前
|
JavaScript 前端开发 图形学
JavaScript 中 Math 对象常用方法
【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。