JavaScript基础与进阶

原始值与引用值

基本概念

1.原始值,表示单一的数据(数据本身),如10,“abc”,true等。
ES设计了6种原始值:Undefined、Null、Boolean、Number、String和Symbol(符号类型:通常用来做标识)。

2.引用值,表示有多个值(原始值或其他引用值)构成的对象。
实际操作对象时,访问的是保存对象的内存地址,即该对象的引用(在堆内的地址)。

动态属性

1.原始值是不可改变的
2.引用值(对象)
可以随时添加、修改和删除其属性和方法

let person = new Object();//person保存的是对对象的引用
person.name = "John";
person.showMe = function () {
  console.log("Hi, I'm " + this.name);
};

3.原始值不能有属性

let one = "Tom";
one.age = 20;
console.log(one, one.age);    //Tom undefined
//当one.age=20;赋值后就销毁了

值传递

赋值,即将值复制给变量的过程。

let a = 100;
let b = a;
b++;
console.log(a, b);
//不是修改值,实际是有三个值的出现
let obj1 = { value: 100 };
let obj2 = obj1;
obj2.value = 200;
console.log(obj1.value, obj2.value);
//obj1和obj2引用的是一个对象

确定类型

通过typeof操作符来判断一个值的类型。

let s = "Nick";
let b = true;
let i = 22;
let u;
let n = null;      //代表空引用,只和对象有关系
let obj = new Object();
let a = [1, 2, 3];
console.log(typeof s);    //string
console.log(typeof b);    //boolean
console.log(typeof i);    //number
console.log(typeof u);    //undefined
console.log(typeof n);    //object
console.log(typeof obj);  //object
console.log(typeof a);    //object

数值

算术运算

1.运算符
包括:+、-、*、/、%、**(指数操作符,ES6新增)。
2.溢出(overflow)
当数值运算结果超过了JavaScript能表示的数值上限时发生,结果为Infinity,若超过了负数范围,则为-Infinity。
基于±Infinity的加、减、乘、除等算术运算结果依然是±Infinity。
但 Infinity/Infinity 为 NaN
3.下溢(underflow)
当运算结果无限接近于零,并比JavaScript能表示的最小值还小时发生。JavaScript会返回0,若当一个负数发生下溢时,则返回-0。
4.被零整除
简单的返回±Infinity。
但 0/0 为 NaN

数值转换

JavaScript提供了3个函数可将非数值转换为数值。
Number( )、parseInt( )和parseFloat( )。

Number(false)         //0
Number(null)          //0
Number(undefined)     //NaN
Number(011)         //11
Number(1.1)         //1.1     
Number(0xf)         //15
Number(“”)            // 0
parseInt(22.5)        //22
parseInt(0xA)       //10
parseInt(A, 16)     // 10
parseFloat(3.14159e3)   //3141.59

布尔值

1.取值
true和false
2.常用于控制结构
if,while,for
3.利用隐式转换

let x = 100;
  let y = null;
  let z;
  if (x) {
    console.log(x);   //100
  }
  if (y != null) {
    console.log(y); //undefined
  }
  if (z) {
    console.log(z); //undefined
  }

字符串

基本概念

字符串是由一组16位值组成的不可变的有序序列。
长度是其所含16位值的个数。

连接

字符串用+连接

"abc"+{value:10}     //"abc[object Object]"
"abc"+{value:10,toString:function(){return this.value.toString();}}     
//"abc10"

先在当前找,找不到会到上一层的object进行找

 let v={value:10,toString:functiono(){return this.value;}}
 String(v)   //10

常用方法

let b="Hello, Javascript";       // undefined
b.substring(1,4)        // "ell"
b.slice(1,4)                //"ell"
b.slice(-3)                  //"ipt"
b.substr(2,3)            //"llo"
b.indexOf("l")            //2
b.lastIndexOf("l")       //3
b.indexOf("l",3)         //3
b.split(", ")               //(2) ["Hello", "Javascript"]
b.replace("s","S")        //"Hello, JavaScript"
b.concat("!")              //"Hello, Javascript!"
b.toUpperCase()        //"HELLO, JAVASCRIPT"
" abc ".trim()            //去掉两端的空格"abc"

扩展

API
1.includes(),startsWith(),endsWith()

{
	let str='string';
	console.log(str.includes('r'));//true
	console.log(str.startsWith('str'));//true
	console.log(str.endsWith('ng'));//true
}

2.repeat()

{
	let str='abc';
	console.log(str.repeat(2));//abcabc
}

3.padStart(),padEnd()

{
	console.log('1'.padStart(2,'0'));//01
	console.log('1'.padEnd(2,'0'));//10
}

若省略第二个参数,则会用空格补齐。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值