数据类型 类型检测
原始类型:
基本类型:number string boolean null undifined object
object分为 Function Array Date
number string boolean 又有包装类型
new String('string'); 就是包装类型
var str1='string';
var str2=new String('string'); 包装类型
包装类型可以有对应的方法
demo
str2.length //6
str2.a=10;
console.log(str2.a);//10
基本类型也可以这样使用
str1.length//6
str1.a=10;//10
console.log(str1.a);//undifined
原理:
基本类型在调用包装类型的方法时,类型创建基本类型的包装类型,在调用完之后,立即销毁这个临时的包装类型。所以在输出str1.a时结果是undifined
number boolean 同上
var num1=123;
num1.tostring()number转string也是这个原理
类型检测
typeof 运算符
instanceof 运算符
Object.prototype.toString 方法
constructor
duck type
typeof 返回是字符串
适合 function和基本数据类型
typeof 10 number
typeof 'string' string
type of new Object() object
type of function function
typeof undifined undifined
typeof [1,2] object
typeof NaN number
typeof null object
对象类型检测使用
instanceof Object
判断对象是否是数组
左操作数:操作数是是一个对象 否则返回false
右操作数:是一个函数对象或者是函数构造器 typeerror 异常
delete 运算符 删除一个对象的一个属性,也可以设置属性的不能删除
demo:var obj={a:1};alert(obj.a)//1delete obj.a;alert(obj.a)//undefined
demo:
var obj={};Object.defineProperty(obj,'x',{configurable:false,value:1});configurable:true 属性可以删除,为false不可以删除alert(obj.a)//1delete obj.a;//false alert(obj.a)//1
删除不了原型链中的变量,不能用来删除变量
js没有块级作用域
for(var i=0; i<10; i++){
}
i并不是局部变量,在外部也可以访问i
var a=b=1;
虽然也可以实现a=1; b=1; 但是却是创建了一个全局作用变量b
function aa(){
var a=b=1;
}
console.log(typeof a);//undefined
console.log(typeof b)//number
在js中声明多个变量的方式:
var a=1,b=1;应该用逗号隔开
try
catch
finally
function
function aa(){}函数声明 会被预先处理,函数前置 在方法声明的前面调用方法是可以的 函数表达式不可以
var aa=function(){}函数表达式 函数表达式也可以带函数名,在函数递归调用中很有用
var aa=function cc(){}
for in遍历对象的属性
1 顺序不确定
2 enumberable为false时不会在for in中出现出现
3 for in 对象属性受原型链影响如果原型链中的enumberable为true也会在for in中出现
with 定义局部变量
但是在js中不建议实现
1 让js引擎优化更难
2 可读性差
3 可被变量定义替代
4 严格模式下被禁用
demo:
width(document.forms[0]){
console.log(name.value);
}
等价于
var form=document.forms[0];
console.log(form.name.value);
进入严格模式:
'use strict'
方法内部
function aa(){
'use strict'
}
js文件中
arguments变为参数的静态副本
!function(a){
arguments[0]=100
console.log(a);//100
}(1);
arguments代表所有的形参,可以改变
!function(a){
'use strict'
arguments[0]=100
console.log(a);//1
}(1);
在严格模式下,arguments代表所有的形参,但是不能改变参数的值
定义立即执行函数的方法
!function(a){arguments[0]=100console.log(a);//100 }(1);
(function(a){console.log(a); })(1);
var aa=(function aa(a){console.log(a);}(10));
转载于:https://www.cnblogs.com/xiaofenguo/p/6772647.html
数据类型 类型检测相关推荐
- java 获取js变量类型_JavaScript 的数据类型及其检测
原标题:JavaScript 的数据类型及其检测 作者:浪里行舟 Java 有几种类型的值? Java 有两种数据类型,分别是基本数据类型和引用数据类型.其中基本数据类型包括 Undefined.Nu ...
- JavaScript基本数据类型及类型检测
数据类型 原始值 Boolean String Number Null Undefined Symbol BigInt 引用数据类型 对象 < Object Function Date RegE ...
- JavaScript中类型检测
文章首发: http://www.cnblogs.com/sprying/p/4349426.html 本文罗列了一般Js类型检测的方法,是构建Js知识体系的一小块,这篇文章是我很早之前总结的. 一. ...
- ie9无法获取未定义或 null 引用的属性“indexof”_前端JS基础篇(二)JS基本数据类型和引用数据类型及检测数据类型方法...
JS中的数据类型 (一).基本数据类型(值类型) 1.number:数字 -12.12.5.-12.5 0这些数字都是number: js中增加了一个number类型的数据:'NaN' typeof ...
- JavaScript学习笔记:类型检测
JavaScript学习笔记:类型检测 1.利用typeof检测数据类型 注意:type of null,返回的不是"null",而是"object".type ...
- JavaScript的数据类型及其检测
一.JavaScript有几种类型的值? Javascript有两种数据类型,分别是基本数据类型和引用数据类型.其中基本数据类型包括Undefined.Null.Boolean.Number.Stri ...
- JavaScript类型检测小结-http://bbs.51js.com/viewthread.php?tid=82661
老话题了,各种方案和相关讨论都不少,简单总结下: 悠久的typeof JavaScript里只有五种基本数据类型:number, string, boolean, null, undefined. 其 ...
- 说说javascript变量类型和变量类型检测
为什么80%的码农都做不了架构师?>>> javascript是一种弱类型语言,它的典型例子就是即变量在使用的时候可以给它赋值任何类型.那么先来看下javascript都有那些 ...
- 使用=React.PropTypes进行类型检测
使用PropTypes进行类型检测 随着你的应用的变得越来越大,你可以通过typechecking来找到更多的bug. 对于某些应用,您可以使用JavaScript扩展(如Flow或TypeScrip ...
最新文章
- VMware中Ubuntu系统不全屏问题
- 为什么大公司还在采用过时的技术?
- 超详细解读ORB-SLAM3 单目初始化过程(上篇)
- oracle索引大小暴增_oracle 如何预估将要创建的索引的大小
- Sms中关于操作系统的部署之上
- [转载]eXeScope 6.50本地溢出分析
- 谈AK管理之基础篇 - 如何进行访问密钥的全生命周期管理?
- 圣诞抽奖 | 2018年的开发者,经历了裁员、加班种种不堪,2019年的你如何获得升职加薪的机会?...
- Unity Camera
- MYSQL 解压版5.7.12安装和客户端连接。
- html元素 按键精灵鼠标移动,按键精灵后台鼠标移动和点击脚本怎么制作。
- css鼠标移入变小手
- Google Play 开发者账号注册 上架应用
- uwp浏览器java源码_在UWP应用程序中打开UWP
- c语言求闰年while,基础练习 闰年判断 c语言
- 小牛的net程序开发之路
- 一文读懂 DNS 解析的工作机制和优化挑战
- linux raid5 性能,RAID级别及各个级别特性
- 最成熟的网格化系统及支撑平台
- 深度:一文看懂Linux内核,Linux内核架构和工作原理详解