JavaScript的原始值是指数字.字符串.布尔值.null和undefined. JavaScript的数据类型分为两类:原始类型(primitive type)和对象类型(object type).JavaScript中的原始类型包括数字.字符串和布尔值.对象类型包括对象.数组和函数. JavaScript中有两个特殊的原始值:null(空)和undefined(未定义),它们不是数字.字符串和布尔值.它们通常代表了各自特殊类型的唯一的成员.…
JavaScript 中的原始值(undefined.null . 布尔值.数值和字符串)于对象(包括数组和函数)有着根本区别. 原始值是不可更改的:任何方法都无法改变(或“突变”)一个原始值. 对于数字和布尔值来说显然如此-----改变数字的值本身就说不通,而对字符串来说就不那么明显了, 因为字符串看起来是有字符组成的数组,我们期望可以通过指定索引来修改字符串中的字符. 实际上,JavaScript是禁止这样做的. 字符串中所有的方法看上去返回了一个修改后的字符串,实际上返回的是一个新的字符串…
一句话来说:原始值是不可变的,而对象引用是可变的. js中的原始值(undefined.null.布尔值.数字和字符串)与对象(包括数组和函数)有着本质的区别.原始值是不可更改的,任何方法都无法更改一个原始值:对于字符串来说,字符串中所有的方法看上去返回了一个修改后的字符串,实际上返回的是一个新的字符串值: var str="hello world"; s.toUpperCase(); s; //仍然不变 原始值的比较是值的比较:只有它们的值相等时它们才想等. 对象和原始值不同,首先它…
上周写过一篇读书笔记<编写可维护的JavaScript>之编程实践,其中 第8章 避免『空比较』是博主在工作中遇坑较多的雷区,所以特此把该章节重新整理分享,希望大家不再坑队友(>﹏<). 在 JavaScript 中,我们常常会看到这样的代码:变量与null的比较(这种用法很有问题),用来判断变量是否被赋予了一个合理的值.比如: var Controller = { process: function(items) { if (items !== null) { // 不好的写法…
JavaScript Number对象 是经过封装的能处理数字值的对象 由Number()构造器创建 只有一种数字类型 可以使用也可以不使用小数点书写数字 JavaScript原始值与对象: 在JavaScript中,除了原始值都是对象 原始值通常包括数字.字符串.布尔值(如果不是用new Object()形式定义的话) 原始值不包含方法和属性 JavaScript数值:始终是64位的浮点数 与其他类型的语言不同,JavaScript始终以64位双精度浮点数来存储数值,0-51存储值,52-62…
写在前面 最近在读<JavaScript启示录>,这本书不是JavaScript的详尽的参考指南,但是把对象作为了解JavaScript的透镜,受益匪浅. 那么我们先来聊一下JavaScript的原始值(值类型)以及复杂值(引用类型),以及他们在内存空间中的存储,关于他们你可能不清楚的一些事: 我们先通过一个经典的面试题类型(并不是原题,我即兴发挥)引出我们今天的主题: 我们已经看出他们的差别,在图一:我们让b = a,改变b的值,发现a并没有改变.在图二:我们让d = c,通过d.name改…
计算机程序的运行需要对值(value)比如数字3.14或者文本"hello world"进行操作,在编程语言中,能够表示并操作的值的类型叫做数据类型(type),编程语言最基本的特性就是主持多种数据类型.当程序需要将值保持起来以备将来使用时,便将其赋值给(将值“保存”到)一个变量(variable).变量是一个值的符号名称,可以通过名称获得对值的引用.变量的工作机制是编程语言的令一个基本特性.本章将参照上节帮助理解本章内容,后续将更深入的讲解. javascript的数据分为两类:原始…
写在前面 最近在读<JavaScript启示录>,这本书不是JavaScript的详尽的参考指南,但是把对象作为了解JavaScript的透镜,受益匪浅. 那么我们先来聊一下JavaScript的原始值(值类型)以及复杂值(引用类型),以及他们在内存空间中的存储,关于他们你可能不清楚的一些事: 我们先通过一个经典的面试题类型(并不是原题,我即兴发挥)引出我们今天的主题: 我们已经看出他们的差别,在图一:我们让b = a,改变b的值,发现a并没有改变.在图二:我们让d = c,通过d.name改…
一.JavaScript不可变原始值 JavaScript中的原始值(undefined,null,布尔值,数字和字符串)与对象(包括了数组和函数)有着根本的区别.原始值是不可变的(undefined,null,布尔值,数字和字符串)任何方法都不法更改(或“突变”)一个原始值. var s= "Hello world!"; console.log(s.toUpperCase()); //=>HELLO WORLD! //可以看到返回的值是.... console.log(s);…
我们都知道原始值之间是可以互相转换的,但是如果对象转原始值呢? 所有的对象在布尔上下文(context)中均为 true .所以对于对象,不存在 to-boolean 转换, 只有字符串和数值转换. 数值转换发生在对象相减或应用数学函数时.例如, Date 对象(将在 日期和时间 一章中介 绍)可以相减, date1 - date2 的结果是两个日期之间的差值. 至于字符串转换 -- 通常发生在我们像 alert(obj) 这样输出一个对象和类似的上下文中. 所以,由此可见对象转原始值的情况下大…
前言 随着 JavaScript 越来越流行,越来越多地开发者开始接触并使用 JavaScript. 同时我也发现,有不少开发者对于 JavaScript 最基本的原始值和包装对象都没有很清晰的理解. 那么本篇文章,就由渣皮来给大家详细介绍一下它们. 话不多说,Let's go! 正文 原始类型 (Primitive types) 原始类型也被称为"基本类型". 目前在 JavaScript 中有以下几种原始类型: string(字符串) number(数字) boolean(布尔)…
字符串原始值修改不了1 var str = "abc"; 2 str[0] = "d"; 3 console.log(str[1]="f"); >>f 4 console.log(str[0]); >>a 5 console.log(str); >>abc提试:字符串是可以通过[]的形式访问的. // 在javascript中数组和对象的值是可变的,也就是说我们动态修改里面值,原始的值也会发生相应的改变,而数字…
× 目录 [1]特性 [2]存储方式 [3]访问方式 [4]比较方式 [5]动态属性 前面的话 javascript的数据类型可以分为两种:原始类型和引用类型.原始类型也称为基本类型或简单类型,javascript基本数据类型包括Undefined.Null.Boolean.Number和String五种,而引用类型也称为复杂类型,在Javascript中是Object.与此相对应,它们的值也分别被称为原始值和复杂值.本文将介绍javascript中的原始值和复杂值 特性 原始值 原始值是表示J…
javascript将数据类型分为两类:原始值(undefined.null.布尔值.数字和字符串),对象(对象.函数和数组) 论点:原始值不可以改变,对象可以改变:对象为引用类型: '原始值不可以改变'不可以改变,如果动脑筋的同学肯定会怀疑了,你们字符串可以改变啊,不信你瞅下面的 var a = 'aa'; alert(a.toUpperCase());//弹出 AA 其实,这些只是表面现象,原始值字符串'a'其实并未发生改变,只是拷贝了一份然后对新的拷贝使用'toUpperCase'函数而已…
我的一句话总结:原始值不管是变量赋值还是函数传递都不会改变原值,引用值不管是变量赋值还是函数传递,如果新变量重新赋值,则不会影响原引用值,如新变量是直接操作,就会影响原引用值. 首先明确,值和类型是两个不同的概念.例如,null是null类型的唯一值.undefined是undefined类型的唯一值.而true和false是boolean类型仅有的两个值等.在任何语言中,值的操作都可以归纳为以下3个方面. 复制值:即把值赋值给新变量,或者通过变量把值赋值给另一个变量.属性或数组元素. 传递值:…
记录一下比较有用的编码规范(该指南是基于 Java 语言编码规范和 Javascript 编程规范,同时结合作者 Nicholos Zakas 的个人经验和喜好). 一些关于格式(包括缩进.行的长度.运算符间距.括号间距.对象直接量.注释.单行注释.多行注释等类似的规范)的规范这里不做记录. A.3 原始值 // 好的写法 var name = "Nicholos"; // 不好的写法:单引号 var name = 'Nicholos'; // 不好的写法:字符串结束之前换行 var…
javascript中的原始值(undefined.null.布尔值.数字和字符串)与对象(包括数组和函数)有着根本区别.原始值是不可更改的:任何方法都无法更改(或“突变”)一个原始值.对数字和布尔值来说显然如此----改变数字的值本身就说不通,而对字符串来说就不那么明显了,因为字符串看起来像由字符组成的数组,我们期望可以通过指定索引来假改字符串中的字符.实际上,javascript是禁止这样做的.字符串中所有的方法看上去返回了一个修改后的字符串,实际上返回的是一个新的字符串值. 代码如下: <…
JavaScript中对象转换为原始值遵循哪些原则? P52 对象到布尔值对象到布尔值的转换非常简单:所有的对象(包括数字和函数)都转换为true.对于包装对象亦是如此:new Boolean(false)是一个对象而不是原始值,它将转换为true. 对象到字符串对象到字符串(object-to-string)和对象到数字(object-to-number)的转换都是通过调用待转换对象的一个方法来完成的.一个麻烦的事实是,JavaScript对象有两个不同的方法来执行转换,并且借来带要讨论的一些…
原始值和引用值类型及区别 首先,原始值和引用值类型都是js中的数据类型,为了充分利用存储空间,定义了不同的数据类型,而且js是弱类型,动态语言,数据类型可变. 原始值(简单数据类型) 存储在栈中的简单数据段,也就是说,它们的值直接存储在变量访问的位置.包含五种:undefined,null,boolean,number和string,可以通过typeof来判断某数据是何简单数据类型. 引用值(复杂数据类型) 存储在堆中的对象,放在变量的栈空间中的值是该对象存储在堆中的地址,也就是说,存储在变量处…
null 是一个javascript字面量,表示空值,就是没有对象被呈现.他是javascript原始值之一.null值常被放在期望一个对象上,但是不引用任何对象的参数位置,也就是说对象的初始化. 我们看下面的一个例子 Javascript var obj = null; console.log(typeof obj === "object"); // true 我们通过对null的命名描述来理解,null是被期望在一个对象上,可能在javascript的规范中设这么设定的.所以返回一…
正题开始前我想先抛出一个问题,==和===有什么区别?可能一般人会想,不就是后者除了比较值相等之外还会比较类型是否相等嘛,有什么好问的,谁不知道?!但是这样说还不够准确,两者的真正区别其实是==在比较的时候允许做强制类型转换,而===不允许.好了终于引出了今天的重点,我们平时肯定遇到过强制类型转换的时候,死活想不通为什么要这样转换(为什么这两个相等)的情况.那么下面我就以==为例,来说明一下其中强制类型转换的规则. 前提知识 JavaScript中的6大类型:undefined.null.boo…
原始值和引用值 在ECMAScript中,变量可以存放两种类型的值,即原始值和引用值. 原始值(primitive value)是存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置. 引用值(reference value)是存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处. 为变量赋值时,ECMAScript的解释程序必须判断该值是原始类型的,还是引用类型的.要实现这一点,解释程序则需尝试判断该值是否为ECMA…
适用场景 本方法适用于需要对敏感信息进行加密传输,但加解密要求又不高的场景,因为是前台的javascript加解密,所以其实还是能通过js代码分析出原始值来的. 如果您对信息极其敏感, 比例登录密码这种, 建议还使用更安全的后台加密. 流程图 加密规则: 从池中随机添加一个字符到每一实际字符后100%生成偶数位字符串, 加密样例: 从012345789每次取一随机值插到abc字符串的每个字符后,形成a8b6c9 解密样例: 只抽取1,3,5,7,9奇数位,最后只抽出abc 最纯粹的js写法 <h…
thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.45;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr&g…
JavaScript中的算术运算 JavaScript 还自称更加复杂的算术运算,这些复杂的运算通过作为Math对象的属性定义的函数和常量来实现: Math.pow(2,53) //=>9007199254740992: 2的53次幂 Math.round(.6) //=>1.0: 四舍五入 Math.ceil(.6) //=>1.0: 向上求整 Math.floor(.6) //=>0.0: 向下求整 Math.abs(-5) //=>5: 求绝对值 Math.max(x,…
JavaScript5中有6种基本数据类型:undefined.null.布尔值(Boolean).字符串(String).数值(Number).对象(Object) ES6中新引入一种原始数据类型:Symbol,表示独一无二的值.ES5中对象属性名都是字符串,比较容易造成属性名冲突.比如,当你使用了一个他人提供的对象,你想为这个对象添加一个新的方法,新方法的名字就有可能与现有方法产生冲突,如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突.这就是 ES6 引…
值类型:也称为原始数据或原始值(primitive value). 这类值存储在栈(stack)中,栈是内存中一种特殊的数据结构,也称为线性表,栈按照后进先出的原则存储数据,先进入的数据被压入栈底,最后插入(push)的数据放在栈顶,需要读取数据时从栈顶开始弹出(pop)数据,即最后一个数据被第一个读出来.因此说,值类型都是简单的数据段.变量的位置和变量值的位置是重叠的,也就是说值类型的数据被存储在变量被访问的位置. 引用类型:这类值存储在堆(heap)中,堆是内存中的动态区域,相当于自留空间,…
 javascript 的原始数据类型有五种,分别是Number.String.Boolean.null.undefined   原始类型数据的特点:值保存在变量本地,且赋值给其他变量后,其它变量改变不影响原来的值. 一.Number类型: 专门保存数字的类型,可用于进行数学计算等的数值. 所占空间:64位(8个字节)二进制保存.注:一个字节8个位. 强调:数字所占的空间与数值的大小没有关系,均占8个字节. 在Number类型中,经常会因为舍入误差引起错误; 舍入误差:因为计算机中无法精确表是十…
12-8. 重新获取一个属性的原始值 问题 在实体保存到数据库之前,你想重新获取属性的原始值 解决方案 假设你有一个模型 (见 Figure 12-11) 表示一个员工( Employee),包含工资(salary)属性. 你有一个业务规则,规定一个员工的工资增长不能超过10%.在一个实体保存到数据库之前,你想验证这条规则,拿新的工资与原来的工资比较,看是否超过10%. Figure 12-11. An Employee entity with the employee’s salary 为核实…
本文目录 查看实体当前.原始和数据库值:DbEntityEntry 查看实体的某个属性值:GetValue<TValue>方法 拷贝DbPropertyValues到实体:ToObject方法 修改DbPropertyValues当前值:索引器 克隆实体:Clone方法 设置实体的值:SetValues方法 克隆实体:SetValues 获取和设置实体的单个属性:Property方法 查询实体的属性是否被修改:IsModified方法 修改导航属性 重新加载实体:Reload方法 读取相关联的…