JavaScript基础学习(1)

基本数据类型

Number

        var num = 123;/*数字*/                                             typeof num-> number

        var num2 = 'abc' - 123;/*NaN*/                                typeof num2-> number

                console.log(isNaN(num2));        /*true*/

        var num3 = Number.max_VALUE*2;/*infinity*/        typeof num3 -> number


String

        var str = 'abc';                    typeof str -> string

        var str2 = '123';                  typeof str2-> string

        var str3 = 'abc' + 123;        typeof str3-> string


Boolean

        var a = true;                        typeof a ->boolean


Symbol

        var sym = Symbol("sym");        typeof sym -> symbol


BigInt

用来表示大于2^53 - 1的整数

        var a = BigInt(9007199254740992);        typeof a ->bigint


Undefined

        var a;


Null

        var a = null;         //判断null:a === null


typeof判断的不足

typeof除了array和null判断为object外,其他的都可以正常判断

引用数据类型

Object

1.内建对象
    由ES标准中定义的对象,在任何的ES的实现中都可以使用
    如:Math    String    Number    Function    Object
2.宿主对象
    由JS运行环境提供的对象,目前来讲主要指由浏览器提供的对象
    如:BOM(浏览器对象模型)    DOM(文档对象模型)
3.自定义对象
    由开发人员自己创建的对象

判断对象:

        console.log(Object.prototype.toString.call({obj}) === '[object Object]') //true

//新建对象
//方式一
var student=new Object();
//var student = {};

//增
student.name="张三";
student.age=20;
student.gender='男';
/*特殊属性名,对象[“属性名”] = 属性值;
    object["123"]=1000;
    object["hello"]="hahaha";*/

//改
student.age=19;

//删
delete student.gender;

//查
console.log(student.name);
/*查属性       "属性名" in 对象
 查自有属性    对象.hasOwnPreperty(属性)*/

//方式二
var person={
    name:"张三",
	age:20,
    gender:'男'
};

Function

函数中可以封装一些功能(代码),在需要是可以执行这些功能(代码)

typeof function(){} === 'function';

//创建一个函数对象
//方式一
var fun=new Function();

//方式二
function add(a,b){
    return a+b;
}
//方式三
var fun=function(){
    
};
/*ES6中箭头函数
参数只有一个省略小括号,函数体只有一句return语句省略大括号
(参数) => {

}*/

Array

数组对象的作用是:使用单独的变量名来存储一系列的值。

typeof检测不出数组类型,用Array.isArray(arr);判断,返回值为布尔值

//创建数组对象
//方式一
var array1=new Array();

/*var array1=[];*/

//方式二
var array1=[1,2,3,4,5,6];

数据类型转换

转换成字符串

//方法一
	//调用toString方法
var a=123;
	//null和undefined没有toSting方法
var b=a.toString();

//方法二
	//调用String()函数
var c=123;
var d=String(c);

//方法三
	//连接空串 原理上是调用String()函数
var e=123;
var f=e+"";

转换成数值型

//方法一
	//调用Number()函数
var a="123";
var b=Number(a);

//方法二	针对字符串
	//parseInt()将一个字符串转换为一个整数
	//parseFloat()将一个字符串转换为一个浮点数
var c="123px";
var d=parseInt(c);

//方法三
    //变量-0 / 1*变量 / 正号
var e = '123';
var f = e - 0;
var f = 1 * e;
var f = +e;

转换成布尔型

//使用Boolean()函数
var a=123;		
var b=Boolean(a);//数值型true,NAN是false

var c="123";	
var d=Boolean(c);//非空字符串true

var e=null;
var f=Boolean(e);//false

var g=undefined;
var h=Boolean(g);//false

//对象也会转换成true

常见红字错误

错误类型SyntaxError

  • Uncaught SyntaxError: Unexpected identifier

        语法解析错误,可能是对象属性之间没有加逗号

  • Uncaught SyntaxError: Unexpected end of input

        语法解析错误:未预期的结束,缺少括号

  • Uncaught SyntaxError: Unexpected token '}'

        语法解析错误:未预期的符号,多了一个括号

  • Uncaught SyntaxError: Identifier 'a' has already been declared

        语法解析错误:标识符a已经被声明,let和const声明是变量不允许重复声明

错误类型ReferenceError

  • Uncaught ReferenceError:a is not defined

        引用错误:变量a未定义

  • Uncaught ReferenceError:$ is not defined

        引用错误:jQuery没有正确导入

错误类型TypeError

  • Uncaught TypeError: Cannot read property 'a' of undefined

        试图获取undefined、null的属性

  • Uncaught TypeError: console.log(...) is not a function
console.log('a')

(function() {

  console.log('立即执行函数')

})()

        打印a后没有写分号,继续执行一次函数,问题出在分号上

错误类型RangeError

  • Uncaught RangeError: Maximum call stack size exceeded

        在函数调用时会产生一个函数调用栈,如果在递归的过程中超过上限则会产生错误

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值