js-20170606-数据类型

JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。ES6 又新增了第七种 Symbol 类型的值

JavaScript有三种方法,可以确定一个值到底是什么类型。

1.布尔值 (下面六个值被转为false 其他都转化成true)

需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true。

2.数值

由于浮点数不是精确的值,所以涉及小数的比较和运算要特别小心。

parseInt() 、 Number()、parseFloat()

3.字符串

字符串可以被视为字符数组,因此可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始)

var s = ‘hello‘; s[0] // "h" s[1] // "e" s[4] // "o" // 直接对字符串使用方括号运算符 ‘hello‘[1] // "e"

4.对象

检查变量是否声明

if (‘a‘ in window) {

// 变量 a 声明过

} else {

// 变量 a 未声明

}

查看所有属性

使用Object.keys方法

var o = {

key1: 1,

key2: 2

};

Object.keys(o);

// [‘key1‘, ‘key2‘]

in运算符

in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false;

在JavaScript语言中,所有全局变量都是顶层对象(浏览器的顶层对象就是window对象)的属性,因此可以用in运算符判断,一个全局变量是否存在。

for…in循环

for...in循环有两个使用注意点。

如果只想遍历对象本身的属性,可以使用hasOwnProperty方法,在循环内部判断一下是不是自身的属性。

5.数组

本质上,数组属于一种特殊的对象。typeof运算符会返回数组的类型是object。

数组的length属性是可写的。如果人为设置一个小于当前成员个数的值,该数组的成员会自动减少到length设置的值。

var arr = [ ‘a‘, ‘b‘, ‘c‘ ];

arr.length // 3

arr.length = 2;

arr // ["a", "b"]

将数组清空的一个有效方法,就是将length属性设为0。

var arr = [ ‘a‘, ‘b‘, ‘c‘ ];

arr.length = 0;

arr // []

in 运算符

检查某个键名是否存在的运算符in,适用于对象,也适用于数组。

var arr = [ ‘a‘, ‘b‘, ‘c‘ ]; 2 in arr // true ‘2‘ in arr // true 4 in arr // false

使用delete命令删除一个数组成员,会形成空位,并且不会影响length属性。

var a = [1, 2, 3];

delete a[1];

a[1] // undefined

a.length // 3

6.函数

JavaScript有三种方法,可以声明一个函数。

(1)function命令

function print(s) {

console.log(s);

}

(2)函数表达式

var print = function(s) {

console.log(s);

};

这种写法将一个匿名函数赋值给变量。这时,这个匿名函数又称函数表达式(Function Expression),因为赋值语句的等号右侧只能放表达式。

采用函数表达式声明函数时,function命令后面不带有函数名。如果加上函数名,该函数名只在函数体内部有效,在函数体外部无效。

(3)Function构造函数(几乎不使用)

var add = new Function(

‘x‘,

‘y‘,

‘return x + y‘

);

// 等同于

function add(x, y) {

return x + y;

}

Function构造函数,除了最后一个参数是函数的“函数体”,其他参数都是函数的参数。

这种声明函数的方式非常不直观,几乎无人使用。

函数可以调用自身,这就是递归

如果同时采用function命令和赋值语句声明同一个函数,最后总是采用赋值语句的定义。

不能在条件语句中声明函数

length属性

length属性返回函数预期传入的参数个数,即函数定义之中的参数个数。

toString()

函数的toString方法返回函数的源码。

函数作用域

在函数外部声明的变量就是全局变量(global variable),它可以在函数内部读取。

var v = 1;

function f(){

console.log(v);

}

f() // 1

在函数内部定义的变量,外部无法读取,称为“局部变量”

function f(){

var v = 1;

}

v // ReferenceError: v is not defined

对于var命令来说,局部变量只能在函数内部声明,在其他区块中声明,一律都是全局变量。

if (true) {

var x = 5;

}

console.log(x); // 5

函数本身的作用域

函数本身也是一个值,也有自己的作用域。它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关。

参数

参数传递方式:函数参数如果是原始类型的值(数值、字符串、布尔值),传递方式是传值传递(passes by value)。这意味着,在函数体内修改参数值,不会影响到函数外部。

如果函数参数是复合类型的值(数组、对象、其他函数),传递方式是传址传递(pass by reference)。也就是说,传入函数的原始值的地址,因此在函数内部修改参数,将会影响到原始值。

注意,如果函数内部修改的,不是参数对象的某个属性,而是替换掉整个参数,这时不会影响到原始值。

arguments对象

arguments对象包含了函数运行时的所有参数

时间: 2024-10-22 09:07:56

js-20170606-数据类型的相关文章

JS的数据类型

JS的数据类型大致分为两大块: 1.基本类型 2.引用类型 基本类型分为:number bolean string undefined null 引用类型分为:原生对象 内置对象 宿主对象

node.js对象数据类型

在这里复习下前端JS的数据类型:前端JS中的数据类型: 1.基本/原生/值类型 string.number.boolean.null.undefined 2.引用/对象类型    ES对象类型:String.Number.Boolean.Math.Date.RegExp.Object.Function.Error,Array,Global对象.    BOM对象类型:window.document.screen.history.location.navigator.event...    DOM

JS中数据类型及原生对象简介

js是一种专门设计用来给网页增加交互性的编程语言,它的技术体系包含了一下几个方面: 1.JavaScript核心语言定义:包括数据类型,变量,常量,运算符,语句等. 2.原生对象和内置对象 3.浏览器对象BOM 4.文档对象类型DOM 5.事件处理模型 将js添加到文档中的方法有三种: 1.内嵌式 2.将js源文件通过<script>元素的src属性连接到XHTML文档中 3.脚本包含在XHTML事件处理属性中,例如onclick js的数据类型分为原始数据类型和引用数据类型: 一.原始数据类

JS的数据类型及转换(还是基础的东西)

朋友说我这是再自娱自乐,我只想说,你说的对????????!其实也不然,这算是我对自己的基础的一次彻底性的重新梳理以及闲的无聊,找点显得比较有意义的事情做罢了. 回归正题,在JS中,数据类型有哪些呢?看看下图 字符串.数字.布尔类型就不细说了,这些大家都懂,说一些大家关注度比较少的东西...... NULL和Undefined: NULL和Undefined一样都只有一个值,并且都是他们本身,但是有一点特别的有意思,那就是: 在W3C里事这样解释这两个东西的: 值 undefined 实际上是从

js的数据类型具体分析

js的数据类型分析 1.基本类型:string·····number···boolean···null···underfied 2.引用类型:·····objck 复习·····点·运算·····xxx.sss····xxx是对象····sss.是方法和属性. 任何数据类型都是拥有属性和方法的 字符串  string····var   st="hello word" 字符串的定义 1 var s="st" 2.st.new string ("hello&q

JS中数据类型、原始数据、内置对象、包装类型对象、typeof

JS中数据类型.内置对象.包装类型对象.typeof关系  https://segmentfault.com/a/1190000018275384 JavaScript 数据类型和数据结构   https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures 原始数据 https://developer.mozilla.org/zh-CN/docs/Glossary/Primitive 原文地址:https://www

js显示数据类型的转换

js中数据类型装换 ### 显示数据类型的转换 typeof:能防回六中操作类型的数据:Number, String, Boolean, Objecet, undefined, function ~JavaScript var a = 1; //conloe.log(typeof(a)) 值为Number var a = []; //conloe.log(typeof(a)) 值为Object var a = {}; //conloe.log(typeof(a)) 值为Object var a

3.2 js六大数据类型

js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型(Object). 前面说到js中变量是松散类型的,因此有时候我们需要检测变量的数据类型.typeof操作符可以检测变量的数据类型(输出的是一个关于数据类型的字符串).返回如下6种字符串:number,string,boolean,object,undefined,function.且看如下例子: var x = 1; console.log(typeof x

js的数据类型及类型转换

Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 通常,我们判断变量的数据类型会用到typeof()方法. 数据的转换分为显式类型转换和隐式类型转换,我们经常用到的是将变量转换成字符串或数字.  一:显式类型转换: 1.转换成字符串时: toString() 1 var str= abc; 2 alert(str.toString()); 2.转换成数字时: (1)parseInt() 转换成整数,parseFloat()转换

js关于数据类型的总结

js数据类型分为原始类型(num,字符串,boolean),对象类型(object,属性的集合,特殊对象是数组,全局对象),原始值(null,undefined),除了原始值,其他的都拥有方法 js可灵活进行数据类型转换 注意: 1,数字类型:在算数运算中上溢,下溢,或被零整除不会报错, 若上溢出结果为无穷大,则返回infinity,负无穷大则返回-infinity 若下溢出运算结果无限接近于0,并比js能表示的最小值还小,返回值为零 若被零整除:返回infinity或-infinity,但0/