真值和假值 相等操作符(==和===) 下面分析一下不同类型的值用相等操作符(==)比较后的结果 toNumber 对不同 类型返回的结果如下: toPrimitive 对不同类型返回的结果如下: ===操作符.如果比较的两个值的类型相同,结果就如下:如果比较的两个值类型不同,返回的就是false 下面的例子会让你深入骨髓的理解(夸张夸张)…
常见的假值有 值 说明 var a=false;  值为假 var a =0;  值为0 var a='';  值为空 var a=10/'abc' 算式错误 var a; 未赋值变量 常见的真值有 值 说明 var a=true  值为真 var a=1 非0数字都是true var a='Hello' 有内容的字符串都是true var a=20/5 数字运算结果非0 var a='true' 有内容的字符串都是true var a='false' 有内容的字符串都是true var a='…
只操作一个值的操作符 递增/递减操作符 前置型/后置型 前置型:操作符位于操作数前面 e.g.: var a = 30; ++a; 等同于 var a = 30; a = a + 1; --> a = 31; e.g.: var b = 30; --b; 等同于 var b = 30; b = a - 1; --> a = 29; 在多符号运算时,前置型变量的值是在语句被求值前改变的 e.g: var a = 30; var b = ++a + 5; --> b = 36; e.g: v…
JS基本概念 JS操作符 JS基本语句 JS数组用法 Date用法 JS字符串用法 JS编程风格 JS编程实践 不知不觉做前端已经五年多了,无论是从最初的jQuery还是现在火热的Angular,Vue,React等前端框架,甚至是nodejs等服务端的兴起,归根到底,我始终觉着一切的核心还是JavaScript.于是最近就有了一个想法,想要梳理一下这些年学习以及使用JS的心得. 本系列文章主要是针对JS的相关知识点做一个类似提纲似的提炼,一来可以作为今后温故知新的参照:二来也是希望能够帮助大家…
前言 Truthy 不等于 ture,他是指是在Boolean上下文中转换后的值为真的值.我的理解是,在javascript中所有表达式为true的值.同理Falsy指的是在javascript中所有表达式为false的值.所有值都是真值,除非它们被定义为 falsy (即, 除了false,0,“”,null,undefined和NaN 外). Truthy JavaScript中的真值示例如下(将被转换为true类型,if 后的代码段将被执行): if (true) if ({}) if (…
字符串-String 字符串就是字符序列. 字符串中,有些特殊字符,叫做字面量,常见的字面量如下表: 判断字符串长度使用length属性 text.length; 字符串拼接 var a = 'Java'; undefined var b = 'Script'; undefined var c = a+b; undefined c "JavaScript" 转化为字符串 方式一:使用toString()方法 ; undefined t.toString(); "t.toStr…
假值 结果为 false 的值称为 假值.例如,空字符串 "" 为假值,因为在布尔表达式中,"" 等于 false. false == 0返回:true false == ""返回:true 以下是所有假值的列表:falsenullundefined0NaN"" 真值如果结果为 true,则为真值.例如,1 是真值,因为在布尔环境下,1 等于 true. 以下是真值的一些其他示例: true42"pizza"…
关系操作符 小于(<).大于(>).小于等于(<=)和大于等于(>=)这几个关系操作符用于对两个值进行比较,比较的规则与我们在数学课上所学的一样.这几个操作符都返回一个布尔值,如下:var result1 = 5 > 3; //truevar result2 = 5 < 3; //false 与ECMAScript 中的其他操作符一样,当关系操作符的操作数使用了非数值时,也要进行数据转换或完成某些奇怪的操作.以下就是相应的规则. 如果两个操作数都是数值,则执行数值比较…
一元操作符只能操作一个值的操作符叫做一元操作符.一元操作符是ECMAScript 中最简单的操作符. 1. 递增和递减操作符递增和递减操作符直接借鉴自C,而且各有两个版本:前置型和后置型.顾名思义,前置型应该位于要操作的变量之前,而后置型则应该位于要操作的变量之后.因此,在使用前置递增操作符给一个数值加1 时,要把两个加号(++)放在这个数值变量前面,如下所示: var age = 29;++age; 在这个例子中,前置递增操作符把age 的值变成了30(为29 加上了1).实际上,执行这个前置…
大多数编程语言中,布尔值true和false仅仅表示true/false.JavaScript中,如'Hello‘这样的字符串值,也可以看做true. 以下是不同数据类型在JavaScript中是如何转换的 数值类型 转换成布尔值 undefined false null false 布尔值 true是true ,false是false 数字 0 和NaN是false,其他是true 字符串 空字符串为false,其他为true 对象 true…
1.  操作符 (1)       一元操作符 前置递增和递减操作符,变量的值都是在语句被求值以前改变的:后置相反 (2)       位操作符 在ECMAScript中,对数值进行位操作时,会发生以下转换过程:64位的数值被转换为32位数值,然后执行位操作,最后再将32位的结果转换回64位数值: 右移分为有符号右移(>>)和无符号右移(>>>) (3)       布尔操作符-(!)(&&)(||) (4)       全等操作符(===)只在两个操作数未经…
值 说明 var a=false; 值等于false(假) var a =0; 值等于0 var a=''; 空的字符串 var a=10/'abc' NaN var a; 未赋值变量…
javascript “||”.“&&”的灵活运用 博客分类: Jquery javascript javascript中运用“||”.“&&”javascript 真值和假值  你是否看到过这样的代码:a=a||""; 可能javascript初学者会对此感到茫然.今天就跟大家分享一下我的一些心得. 其实: a=a||"defaultValue"; 与: if(!a){ a="defaultValue"; } 和…
原文:从头开始学JavaScript (五)--操作符(二) 一.乘性操作符 1.乘法:*      乘法操作符的一些特殊规则: 如果操作数都是数值,按照常规的乘法计算,如果乘积超过了ECMAscript数值的表示范围,则返回infinity或者-infinity 如果有一个操作数是NaN,那返回结果就是NaN 如果是infinity与0相乘,返回NaN 如果infinity与非0数相乘,返回infinity或者-infinity infinity与infinity相乘,返回infinity 如…
 一.概念 与其他语言不同,在js中,逻辑运算符可以返回任何类型的数据,不仅仅是true和false. &&和||的返回值是两个操作数的其中一个.即a&&b或者a||b返回的是要么是a,要么是b,而其他语言中返回的是true or false. 在js逻辑运算中,需要隐式的转换为boolean类型再来运算,转换规则为: 1. 对象.非零number.非空string——>true 2. 0."".null.false.undefined.NaN——…
javascript中递增递减属于一元操作符,所谓一元操作符,即只能操作一个值的操作符. 递增和递减操作符各有两个版本:前置型和后置型.顾名思义,前置型应该位于要操作的变量之前,而后置型应该位于要操作的变量之后. 01.前置型操作符使用: var age=29; ++age; 等同于 var age=29; age=age+1; 执行前置递增和递减操作时,变量的值都是在语句被求值以前改变的. var num1=2; var num2=20; var num3=--num1+num2; //等于2…
简单总结一下JavaScript的几个操作符: var. in. delete. typeof. new. instanceof.void var 定义变量要使用var操作符, 使用var操作符定义的变量将成为该变量的作用域中的局部变量. 也就是说,如果在函数中定义一个变量, 那么这个变量在函数退出后就会被销毁. 省略var操作符可以定义全局变量, 但是不推荐这样的做法. 因为在局部作用域中定义的全局变量很难维护. 有关作用域可以参考:变量.作用域和内存问题 in in操作符有两种使用方式:fo…
让我们从一个有趣的微博开始吧. 末尾的c是优先级最低的逗号操作符.逗号操作符是操作符优先级的最后一行,并且很少有文章记录,它隐藏着它的锋芒.它可能不是JavaScript强势操作符,但是我喜欢它.它简单.优雅并且你应该让它成为你的朋友.所以,我们开始吧--你需要更多了解JavaScript这个害羞英雄. 它是做什么的? 逗号操作符评估它的操作数(从左到右)并返回第二个操作数的值.(MDC) var a = (7, 5); a; var x, y, z; x = (y=1, z=4); x; y;…
表达式(expression)是 JavaScript 中的一个短语(phrases),JavaScript 解释器会将其计算(evaluate)出一个结果.程序中的常量.变量名.数组访问等都是表达式 简单表达式组合成复杂表达式最常用的方法就是使用运算符(operator) 原始表达式 是最简单的表达式是「原始表达式」(primary expression).是表达式的 最小单位 ---- 不再包含其他表达式.常量.直接量.关键字.变量都是原始表达式 1.23 "hello" /pat…
原文:http://www.cnblogs.com/yanhaijing/p/3685304.html 这是我所知道的最完整最简洁的JavaScript基础教程. 这篇文章带你尽快走进JavaScript的世界——前提是你有一些编程经验的话.本文试图描述这门语言的最小子集.我给这个子集起名叫做“JavaScript简易教程”,并推荐准备深入阅读细节和高级技巧之前的新手阅读.心急吃不了热豆腐.文章的最后提出如何进一步学习. 警告:下面是我所描述的规则集和最佳实践.我喜欢整洁清晰(例如,你可以随时通…
表达式是javascript中的一个短语,javascript解释器会将其计算出一个结果.程序中常用量是最简单的一类表达式就是变量.变量名也是一种简单的表达式,它的值就是赋值给变量的值.复杂的表达式是由简单的表达式组成的.比如数组访问表达式是由一个表示数组的表达式,方括号.一个整数表达式构成.它们所组成新的表达式运算结果是该数组特定位置的元素值.同样的函 数调用表达式由一个表示函数对象的表达式和0个多个参数表达式构成.将简单表达式组成复杂表达式最常用的方法就是运算符. 本章(本文)将讲解所有ja…
[表达式和运算符]原始表达式,初始化表达式(对象和数组的),函数定义表达式,属性访问表达式,调用表达式,对象创建表达式,运算符概述,算术表达式,关系表达式,逻辑表达式,赋值表达式,表达式计算,其他运算符. 程序中的常量是最简单的一类表达式.变量名也是一种简单的表达式,它的值是赋值给变量的值.复杂表达式是由简单表达式组成的. 将简单表达式组合成复杂表达式最常用的方法就是使用运算符. [原始表达式] 最简单的表达式是“原始表达式”(primary expression).原始表达式是表达式的最小单位…
Symbol 属性私有化,数据保护 let _gender = Symbol('gender') function Person(name, gender) { this.name = name; this[_gender] = gender } Person.prototype.say = function () { console.log(this[_gender]); } p1.say() let 不支持变量声明预解析(先声明后使用) 支持块作用域 不允许重复声明(暂存死区) 定义的变量不…
这是我所知道的最完整最简洁的JavaScript基础教程. 这篇文章带你尽快走进JavaScript的世界——前提是你有一些编程经验的话.本文试图描述这门语言的最小子集.我给这个子集起名叫做“JavaScript简易教程”,并推荐准备深入阅读细节和高级技巧之前的新手阅读.心急吃不了热豆腐.文章的最后提出如何进一步学习. 警告:下面是我所描述的规则集和最佳实践.我喜欢整洁清晰(例如,你可以随时通过下面的目录快速导航).规则是无懈可击的,但不可避免——每个人的理解不同. 目录 1. 本文约定 2.…
本章要点 表达式是javascript中的一个短语,javascript解释器会将其计算出一个结果. 程序中的常量.变量名就是一种简单的表达式.复杂的表达式是由简单的表达式组成的,比如数组访问表达式.函数调用表达式等等. 将简单表达式组合成复杂表达式最常用的方法就是使用运算符. 1.原始表达式 最简单的表达式.是表达式的最小的单位.包含常量或直接量.关键字和变量. 当JavaScript代码中出现标识符,JavaScript会将其当做变量而去查找它的值.如果变量名不存在,表达式运算结果为unde…
数据结构与算法一直是我算比较薄弱的地方,希望通过阅读<javaScript数据结构与算法>可以有所改变,我相信接下来的记录不单单对于我自己有帮助,也可以帮助到一些这方面的小白,接下来让我们一起学习. 第一章 JavaScript简介 众所周知,JavaScript是一门非常强大的编程语言,不仅可以用于前端开发,也适用于后端开发,其中Node.js就是背后的技术. JavaScript数据结构与算法 那么学习JavaScript数据结构与算法有什么作用呢?首要的作用是数据结构和算法可以高效地解决…
将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况:隐式的情况称为强制类型转换,JavaScript 中的强制类型转换总是返回标量基本类型值,如字符串.数字和布尔值. 如何理解: 类型转换发生在静态类型语言的编译阶段,而强制类型转换则发生在动态类型语言的运行时? 1.如果是静态语言,比如c等,所有的类型转换应该都是在编译阶段处理的吧? 2.如果是动态语言,如js等, 编译阶段会处理类型转换吗? 一.ToString 它负责处理非字符串到字符串的强制类型转换 数字的字符串化遵循通用规则…
一.Date Date实例用来处理日期和时间.Date对象基于1970年1月1日(格林威治时间)世界标准时间起经过的毫秒数.常用:new Date();new Date(value);new Date(dateString);new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]); (注意月份是从0开始的) 参数:    如果没有输入任何参数,则Date的构造器会依据系统设置的当前时间来创建一个Date…
运算符概述 JavaScript中的运算符用于算术表达式. 比较表达式. 逻辑表达式. 赋值表达式等.需要注意的是, 大多数运算符都是由标点符号表示的, 比如 "+" 和"=" . 而另外一些运算符则是由关键字表示的, 比如delete和instanceof. 关键字运算符和标点符号所表示的运算符一样都是正规的运算符. 算术运算符 赋值 y = 5, 以下表格将向你说明算术运算符的使用: 算符 描述 例子 y 值 x 值 + 加法 x = y + 2 y = 5 x…
JavaScript的5种原始类型:undefined.null.布尔值.数字和字符串. JavaScript中两个非常重要的数据类型是对象和数组. 通过方括号定义数组元素和通过花括号定义对象属性名和属性值之间的映射关系. 3.1 数字 JavaScript不区分整数值和浮点数值,JavaScript中的所有数字均用浮点数值表示. JavaScript中的算术运算在溢出(overflow).下溢(underflow)或被零整除时不会报错.当数字运算结果超过了JavaScript所能表示的数字上限…