js的基础部分01


###js的组成部分

  • ECMAscript:js的核心语法
  • DOM:文档对象模型,提供一些属性和方法用来操作dom元素
  • BOM:浏览器对象模型,提供一些属性和方法用来操作浏览器
var btn=document.getElementById('btn');
btn.onclick=function(){
    alert(1);
        this.window.location.href="http:www.baidu.com";//让页面进行跳转
        window.location.href; //获取当前页面的地址
}

创建变量的六种方式

  • var 声明一个变量 es3
  • function 声明一个函数 es3
  • let 声明一个变量 es6
  • const 声明一个常量 es6
  • class 声明一个类
  • import 基于es6模块导入一个些信息 es6

js命名规范

  • 区分大小写
  • 遵循驼峰命名法,起名字真的时候可以由数字、字母、下划线、$组成,但是不能以数字开头,起名字的时候需要语义化
  • 起名字不能是关键字或者保留字
    • 关键字:有特殊含义或功能的字
    • 保留字:以后有可能成为关键字,现在先留着
两种简单的调试方式
  • alert() 在页面弹出
  • console.log() 控制台打印
js的数据类型
  • 基本数据类型
    • number 数字
    • string 字符串
    • boolean 布尔
    • null 空
    • undefined 未定义
  • 引用数据类型
    • object 对象
      • 数组 []
      • 正则//
      • Math
      • date
    • function 函数
  • symbol 唯一的数据 es6新增
  • BigInt 管理最大值 es6新增
number 数字类型

正数,负数,小数,0,NaN 都是数字类型

string

把字符用单引号双引号包起来的就是字符串
####boolean
true真 false假 主要用于判断

null

undefied

未定义

function

函数

function 函数名(传参){
函数体
};
//定义函数
函数名(传参);
 //运行函数
 //注意:传参如果是字符串就要加''

报错

Uncaught SyntaxError: Invalid or unexpected token//语法错误
对象
  1. 普通对象:把属性名和属性值用大括号包起来的,多个键值对用,隔开
  • 属性名:代表一定特性的名字(一般只有数字和字符串),属性名又叫做"键"(key)
  • 属性值:具体的值(可以是任意的数据类型),属性值又叫做"值"(value)
  1. 数组;[1,2,3,4]
  2. Math数学对象,主要用于操作数字
  • Math.random();获取0-1随机数
  • Math.round();四舍五入
  • Math.abs();绝对值
  1. 日期对象
  • new Date();最新时间
  1. 正则
  • /\d/
  1. symbol es6新增,唯一的,永远不会等于其他数,包括本身

把其他数据类型转换为Number数据类型的方法

Number([value])

规则: 字符串:如果是空字符串就是0,如果说字符串中包含非有效数字他的结果就是NaN
布尔类型:true 1 false 0
null类型 0 undefined NaN
对象数据类型: 如果是引用数据类型的转换成数字类型的时候,会隐式先调用toString()这个方法,然后再用Number()方法

console.log(Number('1'));//1
console.log(Number('1PX'));//NaN
console.log(Number(null));//0
console.log(Number(undefined));//NaN
console.log(Number(true));//1
console.log(Number(false));//0
console.log(Number(''));//0
console.log(Number([]));//0
console.log(Number({}));//NaN
console.log(Number(function(){}));//NaN
parseInt([value])把字符串转换为整数

规则:从左到右查找,遇到非有效数字或小数点时停止查找
先转换为字符串

console.log(parseInt('1.5px'));//1
console.log(parseInt(''));//NaN
console.log(parseInt([]));//NaN
console.log(parseInt(undefined));//NaN
console.log(parseInt(null));//NaN
console.log(parseInt({}));//NaN
parseFloat([value])把字符串转换为浮点型,可以识别小数

规则:从左到右查找,遇到非有效数字停止查找,可以识别小数
先转换为字符串

console.log(parseInt('1.5px'));//1.5
console.log(parseInt(''));//NaN
console.log(parseInt([]));//NaN
console.log(parseInt(undefined));//NaN
console.log(parseInt(null));//NaN
console.log(parseInt({}));//NaN
NaN

连自己和自己都不相等,所以不能用它来作为判断

isNaN

用来判断一个数字是否是有效数字,返回结果是布尔数据类型,如果说true说明是非有效数字,如果是false说明是有效数字
会隐式调用Number()方法

isNaN(1)==>false;
isNaN("2")===> false;
isNaN(true)===>false;
isNaN(false)===>false;
isNaN(null)===>false;
isNaN(undefined)===>true;
isNaN({'name':'lili'})=>true;
isNaN([1,2])=>true
isNaN([1])=>false

字符串方法

null和undefined不可以使用toString(),会报错。可以使用String()会转为字符串

//获取字符串长度
var a='aaaaaa';
console.log(a.length);
//获取单个字符
console.log(a[0]);//获取第一个字符
//获取最后一个数字的索引a.length-1
//索引,每个字符都对应一个下标,他从0开始,依次递增

字符串的加减乘除

加法的话除了计算还有字符串拼接的作用,字符串拼接优先级高于数字运算,对于减乘除先转换为number然后再计算,i++与++i除外
注意:跟NaN有关的数学运算,除了字符串拼接,结果都是NaN

console.log('6'/'2');//3
console.log('6'/3);//2
console.log('6'+2);//'8'
console.log('6'*'2');//12
console.log('6'-'2');//4
console.log('6'/undefined);//NaN

var i=1;
i++;
console.log(i);//2
 

转换为布尔的方法

  • Boolean([value]) 转换为布尔
  • ![value] 取反
  • !![value] 取反取反,相当于没有取反

注意:0 NaN undefined '' null在布尔中为false

console.log(!![]);//true
console.log(!!{});//true
console.log(!!undefined);//false
console.log(!!null);//false
console.log(!!'');//false
console.log(!!NaN);//false
console.log(!!0);//false

null与undefined的区别

null

声明变量的时候,我不知道这个数据类型是什么,就可以先写一个空
获取页面中不存在的元素

undefined

想要获取对象的属性值,但里面没有对应的属性,那这个值就是undefined
声明变量却未赋值就是undefined
函数内设置了形参,但是调用时未传参就是undefined
一个函数内如果没有return返回值,那么输出他的返回结果就是undefined

var str;
console.log(str);//undefined
console.log(aab);//因为没有这个所以为null

var dc={
name:xx,
sex:'男'
}
console.log(dc.name);//xx
console.log(dc.age);//对象内没有所以为undefined 

function fn(a,b){
var total=a+b;
return dd=total;
console.log(a,b);
}
fn(1,2);
console.log(dd);//3
console.log(total);//未输出total就是undefined
fn();//undefined undefined  因为没有传实参
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值