JS学习笔记(一)基本数据类型和对象类型
js是一种弱类型的语言,所有的变量都用var进行声明,字符串用双引号或单引号括起来,常见基本数据类型为number,string,boolean等。如 var num = 123;或var num = "123";
变量如果不使用var关键字声明下直接使用(禁用这种方法),变量就是一个全局的变量,具有全局作用域。未定义的数据类型使用不会报错(只声明不赋值),而是显示undefined。js允许重复声明变量,"在同一条作用域链中", 等价于赋值如var num = 10;var num = "abc";
一次性声明多个变量
var v1
, v2 = 1
, v3
, v4
, v5;
等价 var v1; var v2; var v3; var v4; var v5;
浏览器是解释执行的,即从上往下依次执行,js代码也是如此,在开始的时候尽可能将要用到的变量全部声明完毕(js没有块级作用域)。
字符串
js的字符串转义字符规范与C#一致。
字符串的常用方法、属性
获得字符串的长度 str.length
获得字符串中某一个位子的字符 string str.charAt(i);
获得子字符串 string str.substring(startIndex, endIndex); 左边界取得到,右边界取不到,相当于集合中的[)
string str.substr(startIndex, count);
将字符串按照某个字符分隔 Array str.split('|', 数字); 第二个参数可以省略
number和string的转换
number -> string
(1)number对象调用toString方法。
var num = 10;
var res = num.toString();
(2)加一个空格
var num = 10;
var res = num + ""
(3)使用String(数字)函数
var num = 10;
var res = String(num);
(4)js中的数字没有固定精度的表示,可通过调用特定方法,返回类型为string。
var n = 1234.56789;
var s4 = n.toFixed(2); //保留两位小数
var s5 = n.toExponential(2); // 2位指数表示
var s6 = n.toPrecision(2); // 有效位数
string -> number
(1)做除了加法以外的数字运算
var s = "12345";
var r = s / 1; // s - 0;
(2)使用parse系方法
parseInt() parseFloat()
var s = "08";
var r = parseInt(s);
parse系方法,只识别一个字符串中开始的数字,如果识别不了就返回NaN。
alert(parseInt("a123abc") + 1);就返回NaN
(3)使用Number()函数
var n="123";
var s=Number(n);
boolean类型
js的boolean类型等价于C#的bool类型。可通过Boolean()方法转换为boolean类型。
判断方法
数字转boolean // 非零为真,0为假
字符串转boolean // 空字符串为假其余都是真
null与undefined 都为false
取反两次得到boolean类型
var num = 0;
alert(!!num);
boolean转数字和字符串
true -> 1 false -> 0
数组(Array)
js中数组声明用[], 如var arr = ["张三", "李四", "王五", "赵六", "陈七"];用数组下标的方式访问数组,得到对应的数组成员。for-in遍历数组,得到的是索引。
delete 会删除数组中的元素,但是不会改变length的大小, 数组在js中可以为length随意的赋值,可以扩充数组
如
var arrExt = [1,2,3,"4", true];//一个数组可以包含多种基本数据类型
arrExt.length = 12;
数组转数字
如果数g组中只包含一个数字元素,则可以转换为对应的数字,否则输出NaN。
特殊值
NaN (not a number)不是一个数字,如0/0得到的就是 NaN。
Infinity 无穷大
在数字类型中有一个对象 Number
Number.MAX_VALUE 数字最大值,类似于C#中的Int32.MaxValue
Number.MIN_VALUE 数字最小值
Number.POSITIVE_INFINITY 正无穷大
Number.NEGATIVE_INFINITY 负无穷大
判断方法
boolean isNaN(数字); 是否是数字
boolean isFinite(数据);//是否有穷
如 var num = 0 / 0;
alert(isNaN(num));
alert(isFinite(num));
包装类型(对象类型)
在js中基本数据类型是:number、boolean、string
在js中同样存在对象类型: Number、Boolean、String 等 用于提供属性方法等功能
包装类型与基本类型用法一致,但是基本类型的扩充
var num1 = new Number(123); 构建对象类型
使用typeof得到的类型为object
本质上数据对象是不存在属性和方法的,
如
var num2 = 10;
alert(num2.toString());
但某些情况下,如10.toString()是错误的
在数据操作的过程中,num2在内存中临时创建一个对应的包装类型,并执行toString方法,将结果返回,同时释放这个包装对象。(瞬时创建,瞬时释放)
JS学习笔记(一)基本数据类型和对象类型的更多相关文章
- JS学习笔记-OO创建怀疑的对象
问了.工厂介绍,解决重码 前面已经提到,JS中创建对象的方法.不难发现,主要的创建方法中,创建一个对象还算简单,假设创建多个类似的对象的话就会产生大量反复的代码. 解决:工厂模式方法(加入一个专门创建 ...
- Node.js学习笔记(四): 全局对象
在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性. 这 ...
- JS学习笔记(四)常用对象
Error // 语法 throw new Error("消息"); 类似于C#中的Exception对象 // alert(num); try { throw new Error ...
- js学习笔记14----DOM概念及子节点类型
1.概念 DOM:Document Object Model---文档对象模型 文档:html页面 文档对象:页面中的元素 文档对象模型:是一种定义,为了能够让程序(js)去操作页面中的元素. DOM ...
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
- 2019-4-29 js学习笔记
js学习笔记一:js数据类型 1:基本数据类型 number类型(整数,小数) String类型 boolean类型 NaN类型其实是一个nu ...
- 基于jquery的插件turn.js学习笔记
基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...
- WebGL three.js学习笔记 法向量网格材质MeshNormalMaterial的介绍和创建360度全景天空盒的方法
WebGL学习----Three.js学习笔记(5) 点击查看demo演示 Demo地址:https://nsytsqdtn.github.io/demo/360/360 简单网格材质 MeshNor ...
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
- Typescript 学习笔记二:数据类型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
随机推荐
- Ubuntu-升级linux软件源,安装vim/五笔
重装linux后 软件都没了. 这些是要做的: (1):升级软件源 sudo gedit /etc/apt/source.list 打开后ctrl c 下面的源 ##网易的源(163源,无论是不是教 ...
- cdoj 791 Frozen Rose-Heads
//本来想做白书上一题 结果发现又要二染色 又要dp的 想了两个小时没想通 然后做了个傻逼题安慰自己 解:不多说,就是递归到叶节点,然后回来的时候在解决子树和直接删边的代价中间取个最小值 #inclu ...
- java.lang.OutOfMemoryError: PermGen space 解决方案
只需两步: 将值改为512或者1024,然后CTRL+S,重启tomcat 和eclipse即可.
- linux学习之(五)-linux文解压、压缩、安装
查看一个文件的类型 命令: file 文件名 创建一个.tar类型的压缩包使用命令:tar -cvf [文件名].tar 目录 例:tar -cvf a.tar yasuo/ ...
- 使用yii中CSecurityManager的一点小技巧
当我们使用CSecurityManager::encrypt对字符串进行加密, 加密后的字符串是一串乱码(看起来确实像乱码, 具体是什么有待考证), 这不利于我们的下一步操作. 我们可以使用base6 ...
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
在进行UI布局的时候,可能常常会用到 android:gravity 和 android:layout_Gravity 这两个属性. 关于这两个属性的差别,网上已经有许多人进行了说明,这边再简单说一 ...
- NET 人民币大写
/***** HongShijin** Me@HongShijin.com** 2009-3-15 10:13:00.00000** text/C#***/ /// <summary> / ...
- 兼容 CommonJS 和 CommonJS-like规范(1~38)
CommonJS是服务器端模块的规范,Node.js采用了这个规范. 根据CommonJS规范,一个单独的文件就是一个模块.每一个模块都是一个单独的作用域,也就是说,在该模块内部定义的变量,无法被其他 ...
- div内嵌p,div等块元素出现的问题
div内嵌p,div等块元素出现的问题 http://caiceclb.iteye.com/blog/428085 div内部块级元素,比如p,div,设置外间距(margin)的话会怎样.本来还纳闷 ...
- sqlserver数据库差异比较
相信这个功能会对好多网友有帮助,不得不说vs的功能很强大,废话不多说,切入正题 我们可以使用 vs自带的工具比较两个数据库的架构差异和数据差异,这篇文章只是写了架构的差异,我相信看完以后, 如何进行数 ...