文档章节

JavaScript中的一些特殊用法(四)

我是偶哦
 我是偶哦
发布于 2016/06/22 19:49
字数 988
阅读 71
收藏 3
点赞 1
评论 3

1. Date类型

  • 常见用例
    var now = new Date();       //返回当前时间
    var sometime1 = new Date(1465999453000);  //1970年后的毫秒数 Wed Jun 15 2016 22:04:13 GMT+0800
    var sometime2 = new Date("5/5/2016");  //等价于 var sometime2 = new Date(Date.parse(""5/5/2016""));

    /* 
     * Date.UTC()的参数分别是年份,月份(0-11),日(1-31),小时(0-23),分钟,秒,毫秒,并且为GTM时间
     * 前两个参数是必须的,没有天则假的为1,其他假定为0 
     *  
     */
    var sometime3 = new Date(Date.UTC(2016,0));      // Fri Jan 01 2016 08:00:00 GMT+0800 (中国标准时间) 转换为GTM+8
    var sometime4 = new Date(Date.UTC(2016,6,6,21,4,45));    //VM654:4 Thu Jul 07 2016 05:04:45 GMT+0800 (中国标准时间)

    //和上面两个的区别就是,上面是GTM时间,下面是本地时间。
    var sometime3 = new Date(2016,0);
    var sometime4 = new Date(2016,6,6,21,4,45);
  • 当创建一个不存在的时间时,浏览器不会报错。
    var someDate1 = new Date("6/31/2016"); //Fri Jul 01 2016 00:00:00 GMT+0800  Chrome 51结果
    var someDate2 = new Date("Sat May 25 2016 15:20:45 GMT+0800");  //Wed May 25 2016 15:20:45 GMT+0800 (中国标准时间) chrome 51结果,星期错误

Date.parse()常见解析格式如下

  • 月/日/年
  • 英文月 日 年
  • 英文星期 英文月 日 年 时:分:秒 时区
  • YYYY-MM-DDTHH:mm:ss.sssZ
    var someDate1 = new Date("5/5/2016");
    var someDate2 = new Date("May 12,2016");
    var someDate3 = new Date("Wed May 25 2016 15:20:45 GMT+0800");
    var someDate4 = new Date("2016-05-13T13:34:45");

2. JavaScript变量作用域

JavaScript中没有块级作用域,只有函数作用域。

    //函数作用域
    var color = "blue";

    function changeColor(){

        var anotherColor = "red";

        function swapColors(){
            var tempColor = anotherColor;
            var anotherColor = color;
            color = tempColor;
        }

        swapColors();
    }
    changeColor();

    //块作用域不起作用
    if(true){
        var color = "blue";
    }
    alert(color);           //blue

改变作用域链

  • with
  • catch

关于作用域链,有兴趣可以参考这篇博客

3. 正则表达式

  • 字面量定义一般格式 var expression = / pattern / flags ;,flags常见的有g全局,i不区分大小写,m多行模式,注意理解多行模式。
    多行模式
  • 元字符有( ) [ ] { } \ ^ $ | ? * + .
  • 注意字面量定义和构造函数定义的区别。例如/\[bc\]at/等于\\[bc\\]at,这两个都匹配"[bc]at"

4. Function类型

  • 函数声明式定义Function,函数表达式定义Function,构造函数定义Function
    //声明式
    function sum (num1,num2){
        return num1+num2;
    }

    //表达式
    var sum = function(num1,num2){
        return num1+num2;
    } 

    //使用构造函数
    var sum = new Function("num1","num2","return num1+num2");   //不推荐使用

JavaScript高级编程中提到声明式和表达式定义是有区别的,声明式会将函数定义提前,也就是说可以在函数调用语句可以写在函数声明语句前面,而表达式定义则不然。但是我通过Chrome 51测试时发现,两者都可以,并无不同。

此处更正一下,是我错了。在控制台调试时会保留前面的代码,换句话说就是第二个sum调用的是第一次调用的函数,如果单独测试你会发现TypeError: sayHi is not a function:pensive: 正确代码

  • 如果函数重名,后一个声明的会覆盖前一个
  • 如上代码,注意sum和sum()的区别
  • 函数中特别的关键字
    • this
    • arguments //函数内参数数组
      • callee //指向有arguments对象的函数
    • caller //指向调用当前函数的引用
    • apply()/call() //区别在于如果函数有参数,apply可以直接传递数组,而call必须一个一个传递。
        window.color = "red";
        var o = { color:"blue" };
        function sayColor(){
            alert(this.color);
        }
        sayColor(this);         //red
        sayColor(window);       //red
        sayColor(o);            //blue
    
    • bind()
        window.color = "red";
        var o = { color:"blue" };
        function sayColor(){
            alert(this.color);
        }
        var objectSayColor = sayColor.bind(o);
        objectSayColor();           //blue
    

5. 基本包装类型

  • 不能运行时为基本类型值添加属性和方法
  • 使用Object构造函数,返回的也是相应基本类型的包装类型的实例
  • 不要使用Boolean对象
     var falseObject = new Boolean(false);
     var result = falseObject && true;
     alert(result); //true
     alert(typeof falseObject); //object
  • 数值类型注意如下判断
    var numberObject = new Number(10);
    var numberValue = 10;
    alert(typeof numberObject); //"object"
    alert(typeof numberValue);  //'number"
    alert(numberObject instanceof Number);  //true
    alert(numberValue instanceof Number);   //false    

© 著作权归作者所有

共有 人打赏支持
我是偶哦
粉丝 5
博文 32
码字总数 21607
作品 0
深圳
加载中

评论(3)

我是偶哦
我是偶哦

引用来自“Mercy_丶”的评论

楼主:标题错了,Data --> Date
36已修改
Mercy_丶
Mercy_丶
楼主:标题错了,Data --> Date
Mercy_丶
Mercy_丶
楼主:标题错了,Data --> Date
undefined与null的区别

大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的none,Ruby语言的nil。 有点奇怪的是,JavaScript语言居然有两个表示"无"的值:undefined和n...

ihaolin
2014/03/30
0
0
一行能装逼的JavaScript代码的延伸

前段就是坑,入坑水真深。 先看看一个黑科技, 纳尼,这是什么东西。 贴入浏览器执行一看,你个XX,你给老子等着。。。。。。。 然并卵。 作为一般的青年就此笑过, 可是我不是一般的青年,我...

淡色的云
05/30
0
0
JavaScript基础(二)变量和数据类型

javascript变量和数据类型 一、javascript命名规范 1. 严格区分大小写 2. 变量的命名必须以字母或 或 $开头,余下的部分可以是任意的字母,数字,或者是 或者是$ 3.不能用关键字或者是保留字...

曾杨
2013/12/25
0
0
JavaScript 的undefine 与 null

参考自网站( http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html ),并稍作整理。 <一> 相似性 在JavaScript 中,将一个变量赋值为 undefined 或 null,几乎没有区别。 在使用上...

平江夜弹
2014/12/31
0
0
提高 web 应用性能之 JavaScript 性能调优

简介: JavaScript 是一个比较完善的前端开发语言,在现今的 web 开发中应用非常广泛,尤其是对 Web 2.0 的应用。随着 Web 2.0 越来越流行的今天,我们会发现:在我们的 web 应用项目中,会有...

风一样
2011/08/10
0
0
判断javascript数组的方法

判断javascript数组的方法 var is_array=function(){ return value && } 我们知道,javascript是一种弱类型的语言,并且,javascript中的一切实质上都是对象。那么,在javascript中如何进行对...

首席xx师
2013/06/06
0
2
JavaScript中call()与apply()有什么区别?

今天读《JavaScript权威指南》时发现其中有段代码用到了apply方法用于递归实现数组的展开。可是我不懂这个函数的用法,因此查了一下,将资料整理如下。 Javascript的每个Function对象中有一个...

小微
2012/08/27
0
1
unbelievable! 通过Css调用Js代码?

一直以来通过javascript操作css都是家常便饭,使用起来也没感觉什么特殊,如果反其道而行之呢? 用CSS写出Javascript代码或者说用CSS调用JS代码可行吗? 答案是可以的,从技术层面上是可以实现的,...

顽Shi
2014/07/01
0
21
javascript里undefined与null的区别

大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的none,Ruby语言的nil。 有点奇怪的是,JavaScript语言居然有两个表示"无"的值:undefined和n...

游客
2014/03/30
0
2
Spring 的优秀工具类(2):特殊字符转义和方法入参检测工具类

特殊字符转义 由于 Web 应用程序需要联合使用到多种语言,每种语言都包含一些特殊的字符,对于动态语言或标签式的语言而言,如果需要动态构造语言的内容时,一个我们经常会碰到的问题就是特殊...

采女孩的小蘑菇1
2014/03/31
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Iterm2安装Zsh + Oh My Zsh+Solarized

安装Oh My Zsh curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 安装Zsh: 1.安装zsh brew install zsh 2.配置iterm2 sudo vim /etc/shells输入:......

孟飞阳
6分钟前
0
0
缓解ddos攻击的有效解决办法

因为防火墙无法处理所有类型的ddos攻击,下一代防火墙生成内置的DDoS防御,但是无法处理所有类型的攻击。对抗DDoS攻击的最佳做法是有专属的设备或者服务在攻击透过防火墙或者其他的IT基础设施...

上树的熊
7分钟前
0
0
Spark Streaming如何使用checkpoint容错

在互联网场景下,经常会有各种实时的数据处理,这种处理方式也就是流式计算,延迟通常也在毫秒级或者秒级,比较有代表性的几个开源框架,分别是Storm,Spark Streaming和Filnk。 伦理片 http...

刺猬一号
8分钟前
1
0
Xamarin Essentials教程地理定位Geolocation

Xamarin Essentials教程地理定位Geolocation 通过地理定位功能,应用程序可以获取用户的当前地理位置,如经纬度值。利用地理位置,可以在地图上定位,也可以转化物理位置,划分用户的归属地。...

大学霸
21分钟前
0
0
vue 编译警告 Compiled with 4 warnings

There are multiple modules with names that only differ in casing. This can lead to unexpected behavior when compiling on a filesystem with other case-semantic. Use equal casing.......

落雪飞声
25分钟前
0
0
开篇文章,长期记录安全情形

密码位置 密码位于注释中 密码位于服务器端文件中 通过访问根目录下.htaccess、robots.txt查看禁查路径 密码文件可能存在的路径:/、/extra/、/extras/ 密码加密 binary to base16 sha256 彩虹...

hirainn
38分钟前
0
0
mysql数据库设置root可以远程登录的方法

mysql数据库设置root可以远程登录的方法 Posted on 2018-02-21 21:08 sishuisufeng 阅读(161) 评论(0) 编辑 收藏 允许root用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如...

rootliu
43分钟前
1
0
TensorFlow 图的基本操作

图的创建,一般只需要使用默认图就能满足大部分的需求了 # 1 创建图的方法# 在默认图中创建常量c = tf.constant(0.0)# 新建一个图g = tf.Graph()# 设置上下文管理器,标明操作...

阿豪boy
今天
0
0
git 忽略文件失效

git update-index --assume-unchanged */.project

林子大鸟
今天
1
0
实现验证码功能

1、实现验证码,并存储 import com.dtb.pc_enterprise.entity.EnterUserEntity;import com.dtb.pc_enterprise.service.AdminService;import com.dtb.pc_enterprise.util.RedisService;......

木九天
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部