js中的数据类型

一、基本数据类型

number、string、boolean、undefined、null、以及es6新出的Symbol
代码执行也是占用的内存
对于基本数据类型也就是简单类型来说,变量存储的直接就是值本身。 所以把简单类型叫做值类型。

字符串类型:

在js中,字符串必须使用 ‘’ 或者 ""包裹起来,推荐 使用 单引号 ‘’

 	var str = '张三';
    console.log(str);
    var name = "李四";
    console.log(name);

    var name1 = 'zs';
    console.log(name1);
    ```
  字符串有一个**length**的属性,表示字符串中字符的**个数**
  ```js
	  var name2 = 'sldkjflskdjflksdjf';
	  console.log(name2.length);

转义字符

// \"  表示是一个普通的 "字符
// \'   表示普通的'字符串
// \n   表示换行 表示回车键
// \t   制表符 表示按了tab键 一般来说,一个tab键会等于4个空格
var str4 = "离开'他'吧,我偷\"电瓶车\"养你";
console.log(str4);

var str5 = 'abc\tdef';
console.log(str5);

在这里插入图片描述
字符串的拼接

// + 表示字符串的拼接, 可以把多个字符串拼成一个字符串
    var str = 'hello' + 'world' + '哈哈';
    console.log(str);

    // + 表示数字的加法,把多个数加起来
    var str1 = 11 + 11;
    console.log(str1);

    var str2 = '11' + 11;
    console.log(str2);


    var str3 = 11 + '11' + 11;
    console.log(str3);

    // 加号: 如果+号的两边都是数字,就是加法的功能
    //       如果+有一边或者2边字符串,就是拼接字符串的效果。

布尔类型:

// 布尔类型,只有两个值: true(真) 和 false(false)
    var flag = false;
    console.log(flag);

    var flag2 = true;
    console.log(flag2);

undefined:

// undefined : 如果一个变量没有赋值,变量的值就是undefined
var num = undefined;
console.log(num);
console.log(undefined);

null:

null  表示的一个空的对象
console.log(null);

二、引用类型

引用类型除 Object 本身外,Date、Array、RegExp 也属于引用类型 。
引用类型也就是复杂数据类型,对于复杂类型来说,由于其值的大小会改变,所以不能将其存放在栈中,否则会降低变量查询速度,因此变量存储的仅仅是复杂类型的地址, 复杂类型会在内存中单独开辟一块空间来存储。
什么是对象?
对象:一个无序的键值对的集合。
作用:存储一个实体(对象)的所有的属性和方法

创建对象的方式:

创建单个对象

  1. 字面量的方式
var bz = {
      age: 32,
      name: '黄XX',
      gender: '不详',
      height: 180,
      weight: 120,
      sayName: function() {
        console.log('ggg');
      },
      sing: function() {
        console.log('今天给大家唱首歌');
      }
    }

2 构造函数 new Object()

var obj = new Object();
console.log(obj);

批量创建对象:

  1. 工厂函数方式
// 批量创建对象  -------工厂函数
    function createPerson(name, age, gender) {
      var obj = new Object();
      obj.name = name;
      obj.age = age;
      obj.gender = gender;
      obj.sayHi = function() {
        console.log(this.name);
      }
      return obj;
    }

    var zs = createPerson('张三', 50, '女');
    var ls = createPerson('李四', 100, '男');
    zs.sayHi();
    ls.sayHi();

2 构造函数:实例化对象

function Person(name, age, gender) {
   this.name = name;
   this.age = age;
   this.gender = gender;
   this.sayHi = function() {
     console.log('大家好');
   }
 }
 var p1 = new Person('张三', 18, '男');

 console.log(p1);

 var p2 = new Person('李四', 20, '女');
 console.log(p2);

new干了什么
1. new会创建一个空的对象, 这个对象的类型就是 Person
2. 让 构造函数内部的this指向这个新对象
3. 执行构造函数
4. 返回这个新的对象

操作对象的属性有两种方式
  1. 点语法

对象名.属性名

2 []语法, 关联数据的语法,,也可以把对象看成数组

对象名[属性名]

var obj = {
    name: 'zs',
    age: 18,
    gender: '男',
    sayHi: function() {
      console.log('大家好,我是', this.name);
    }
  };
//点语法
console.log(obj.age)
// []语法 对象名['属性名'] : 属性名是一个字符串
console.log(obj['age']);
console.log(obj['name']);
obj['hobby'] = 'ls';
console.log(obj);

obj['sayHi']();
obj.sayHi();

二者对比

  1. 点语法更加简洁 写死 obj.age
  2. 中括号语法更加灵活, []语法只要保证[]中最终是一个字符串即可。
对象的遍历语法

for(var k in obj){}

var obj = {
      name: 'zs',
      age: 18,
      gender: '男'
    }

for(var k in obj) {
      console.log(k);
      // console.log(obj.k);  // obj的k属性
      console.log(obj[k]);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值