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学习笔记(一)基本数据类型和对象类型的更多相关文章

  1. JS学习笔记-OO创建怀疑的对象

    问了.工厂介绍,解决重码 前面已经提到,JS中创建对象的方法.不难发现,主要的创建方法中,创建一个对象还算简单,假设创建多个类似的对象的话就会产生大量反复的代码. 解决:工厂模式方法(加入一个专门创建 ...

  2. Node.js学习笔记(四): 全局对象

    在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性. 这 ...

  3. JS学习笔记(四)常用对象

    Error // 语法 throw new Error("消息"); 类似于C#中的Exception对象 // alert(num); try { throw new Error ...

  4. js学习笔记14----DOM概念及子节点类型

    1.概念 DOM:Document Object Model---文档对象模型 文档:html页面 文档对象:页面中的元素 文档对象模型:是一种定义,为了能够让程序(js)去操作页面中的元素. DOM ...

  5. JS 学习笔记--9---变量-作用域-内存相关

    JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...

  6. 2019-4-29 js学习笔记

    js学习笔记一:js数据类型   1:基本数据类型       number类型(整数,小数)      String类型          boolean类型        NaN类型其实是一个nu ...

  7. 基于jquery的插件turn.js学习笔记

    基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...

  8. WebGL three.js学习笔记 法向量网格材质MeshNormalMaterial的介绍和创建360度全景天空盒的方法

    WebGL学习----Three.js学习笔记(5) 点击查看demo演示 Demo地址:https://nsytsqdtn.github.io/demo/360/360 简单网格材质 MeshNor ...

  9. vue.js 学习笔记3——TypeScript

    目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...

  10. Typescript 学习笔记二:数据类型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

随机推荐

  1. hdu 1520Anniversary party(简单树形dp)

    Anniversary party Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  2. 【带权并查集】【HDU3038】【How Many Answers Are Wrong】d s

    这个题看了2天!!!最后看到这篇题解才有所明悟 转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4298091.html   ---by 墨染之樱 ...

  3. 从头开始-02.C语言基础

    变量的内存分析: #include <stdio.h> int main() { //内存地址由大到小 int a=10; int b=20; //&是一个地址运算符,取得变量的地 ...

  4. 简单的CSS网页布局--一二列布局

    1.一列布局 (一)一列自适应 自适应浏览器,随着浏览器的拉伸而变化,一般宽度采用百分比的写法,很简<!DOCTYPE html> <html> <head lang=& ...

  5. OC中的一个特性:延展

    OC中的一个特性:延展其实说白了,延展就是弥补C语言中的前向申明,我们知道,在C语言中,如果你想调用一个函数的话,那么在此之前必须要声明一个这个函数,就是有前置性.OC中为了弥补C语言中的这个问题,就 ...

  6. Java 工厂模式学习

    工厂模式分三种:简单工厂.工厂方法.抽象工厂.其中抽象工厂是用于多个产品族的情况.所谓产品族就是不同产品组成的有机整体,各不同产品之间相互依赖.打个比方,一台电脑有CPU.主板.内存和硬盘等,这些不同 ...

  7. QF——OC的多态,动态绑定及实现原理

    多态: 封装,继承,多态是面向对象的三大特征. 那多态到底是什么呢? 多态:允许不同的类定义相同的方法,OC能自己判断当前类所对应的方法,不会混乱. 动态类型:程序直到运行时才确定对象的类型. 动态绑 ...

  8. Js中 关于top、clientTop、scrollTop、offsetTop等

    网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...

  9. 将数据从服务器端同步到手机上, 并且需要离线工作,Couchebase Mobile 也许是目前最好的解决方案:

    将数据从服务器端同步到手机上, 并且需要离线工作,Couchebase Mobile 也许是目前最好的解决方案: 原文地址: https://www.infinum.co/the-capsized-e ...

  10. css3之border-color

    -moz-border-top-colors:上边框-moz-border-right-colors:右边框-moz-border-bottom-colors:下边框-moz-border-left- ...