原生js基础

js引入方式

  1. 通过标签内的src添加
    
  1. 直接在 内部填写JS;

JS输出方式

  1. document.write() 向页面输出内容,会覆盖页面原先的内容
  2. console.log 向控制台输出内容,通常用来调试网页
  3. alert() 向页面弹出一个小窗口
  4. innerHTML 向目标标签内输出html格式的文本
  5. innerText 向目标标签输出text格式的文本

变量

可以使用 var let cont 声明一个变量
注意:
变量必须先声明 , 再使用
变量可以重复赋值
变量可以赋不同类型的值
一个var 可以声明多个变量 , 变量之间用 " ," 隔开
声明了但是未赋值的变量 值为 undefined;

命名规则

  1. 开头必须是英文字母、'$'、'_' ;
  2. 中间或者结尾可以是数字 ;
  3. 不能包含除了 '$' 和 '_' 之外的特殊字符;
  4. 不能用 '关键字' 和 '保留字'
  5. 变量名区分大小写

JS变量类型

基本数据类型
1. number 数值型
2. string 字符串 用单引号或者双引号引起来的字符
3. undefined 未定义的未赋值的, 当变量声明了但是没有赋值,则值为 undefined;
4. null 空值
5. boolean 布尔值 true false
6. symbol 创建一个全局唯一的隐藏的字符串变量

引用数据类型
array 数组
object 对象

//数组Array
let array = [0,1,2,3,4,5]
//对象object
let obj = {
   name:"小明",
   age: 18
}

关键字 typeof 返回变量的数据类型
typeof "数字" 返回 number
typeof "字符串" 返回 string
typeof "true||false" 返回 boolean
typeof "Array/数组" 返回 object
typeof "objcet/对象" 返回 object
typeof "function" 返回 function

数值型

  1. var a = 1; var a = 0.1; // 等同于 var a = .1;
  2. NaN not a number 非数字
  3. NaN 跟任何数据比大小 返回值都是 false;
  4. Infinity 无穷大 -Infinity 无穷小

字符串
用单引号 '' 或者双引号 "" 引起来的字符就是字符串;
注意 : 单引号开头用单引号结尾,双引号开头用双引号结尾

  1. 属性
    length 字符串的长度
    str.length 取得str的字符长度
  2. 索引
    字符的位置(目录) 从 '0' 开始
    str[0] 取得 str 中索引为0的字符

Boolean 布尔值
用于逻辑判断
只有两个值 true false

数组以及对象在后面进行介绍

js 的六种假值

  1. 数字 '0'
  2. 空字符串 '""'
  3. 非数字 'NaN'
  4. 布尔值 'false'
  5. 空值 'null'
  6. 未定义 'undefined'

数据类型转换

转成数字
  1. parseInt()

    • 从左向右逐个查找字符,直到找到不符合整数规则的字符为止,把前边的字符转成整数, parseInt 能够将 0x 识别为 16进制的数字前缀
    • 基模式 parseInt(number,N) 将字符串 number 当作是 N 进制的数字 向10进制转换
  2. parseFloat()

    • 从左向右逐个查找字符,直到找到不符合整数规则的字符为止,把前边的字符转成小数
  3. Number(n)

    • 首先检查 n 整体符不符合数字的规则,如果符合再选择使用parseInt 或者 parseFloat 来转成对应的数字,如果不符合数字的规则则转为NaN
    • Number 能够将null 转为0 不能讲undefined 转为0,只能转成NaN;
转成字符串
  1. a.toString(); 将a 转成字符串

    • a.toString(N) 基模式 如果a是个数字, 将a作为10进制的数字转为N进制
  2. String(a); 将a 转成字符串

注意: 在转换 null 和 undefined 的时候, 'String()' 能把它们正常的转为 字符串 'null' 和 字符串 'undefined' , 'toString()' 不能转换

转成布尔值

Boolean(a) 将a转成布尔值

引用数据类型

array 数组 是一系列数据的集合,用'[ ]'包括
object 对象 是对某一个目标的 '键值对' 的集合 也称为 '属性内容' 的集合

创建数组的方式

var arr = new Array(1,2,3);// 使用new方法实例化一个数组 内容为 [1,2,3]
var arr = [1,2,3];// 等同于上一步
注意 : var arr = new Array(3);// 代表创建一个length为3的数组,目前里面的元素全是 undefined

var arr = new Array(1,2,3);
var arr = [1,2,3];
数组的默认属性

数组默认具有两个属性,'length' 以及 'index'

对于 var arr = [1,2,3]
length 数组的长度
Index 索引 数组的下标 从 0 开始


创建对象的方式

var obj = new Object(); 使用new方法生成实例化对象obj
var obj = {}直接使用字面量方式创建对象obj

var obj = new Object();
var obj = { // 字面量
    name:'yutiantian',
    age:18
}
访问对象的属性值的两种方式

console.log(obj.name)
console.log(obj['name']);
区别在于用 [] 取值的的时候,中括号里可以是变量, 但用 . 取属性值的时候不可以写变量, . 后跟着的名字会被当做 obj 的属性名使用, 如果obj没有这个属性会返回 undefined

  注意 : 对象没有`length` 属性 , 对象的属性不分先后
var obj = {
  name:"小明"
};
// 1. 直接修改
//添加age
obj.age=18;

//修改name
obj.name = "张三"

//2. 通过变量修改
var name1 = "name"
var age1 = "age"
 //修改name
obj[name1]  = "李四

//修改age
obj[age1] = 25;

引用类型与普通类型的区别

  • 在创建类型时,普通类型被存放在栈内存中,而引用类型被存放在堆内存中。

  • 引用类型想要被调用时,需要通过栈内存中存放的地址来找到自己。如果多个变量指向同一个引用类型,那么任何操作都会修改引用类型本体。

运算符

数学运算符(算术运算符)

+-*/(除法) 、%(取余/取模)

'+'不仅表示数学加法,还表示 字符串的连接符,当数字与字符串相加的时候,会把数字当做字符串然后与另一个字符串拼接起来

' -. * ./ .%'表示数学运算,当数字与字符串执行这些运算时,会尝试将字符串转成数字然后再进行数学运算,如果转不成,则返回 NaN

(隐式类型转换)

+=-=*=/=%=

自增自减

i++ 前自增量;

++i 后自增量;

'++i'和 '--i'都会让 i 的值 +1, 区别在于:

'++i' 这个表达式的结果是 先让i的值 +1 在输出结果,

'i++' 先把 i原本的值输出 再让 i 的值 +1 ;

'i--' 前自减量;

'--i '后自减量;

关系运算符

\><>=<=

规则

  当两边都是 '数字' 的时候,按照数学关系比较大小

  当其中一边是 '数字' 的时候,会尝试将另外一个转成number格式,如果能转成数字,则按照数学关系比较 ,

  如果转换失败则返回`NaN`  。`NaN`参与了关系比较的时候除了 `!= `和 `!== `之外,其他全部返回` 'false'`

  当两边都是 字符串 的时候, 会从左向右一位一位的比较他们的 ASCII 码值,直到遇到不相等的位置 

`==` 、 `===` 、 `!=` 、 `!==`

'`==`' 如果等号两边的值在经过数据类型转换之后相等,则返回 true,否则返回false

!= 如果 == 返回true,则 != 返回false ,如果 == 返回 false ,则 != 返回true

'`===`' 等号不仅值相等,数据类型也必须相等,才会返回true ,否则返回 false

'`!==`' 如果 === 返回true,则 !== 返回false, 如果 === 返回false, 则 !== 返回true

逻辑运算符

!&&||

'!' 逻辑非 取反 返回一个 boolean 值

'&& ' 逻辑与 与运算符 符号两边都是 true的时候才会返回true

  • 返回值: console.log(a && b); 如果 a 为true 则直接返回 b 的值,如果a 是false 则返回a

'||' 逻辑或 或运算符 符号两边任意一个 为true 就会返回true

  • 返回值: console.log(a || b); 如果a为true 则直接返回 a 的值,如果a 是false 则返回b

其他运算符

'=' 赋值运算符 将等号右边计算完成之后再赋值给等号左边;
',' 逗号运算符
'条件 ? 结果1 : 结果2 条件运算符' (三目运算符) 如果条件成立 则返回 结果1 否则返回结果2
'delete'删除对象的属性或者方法
'void' 将变量的值置为undefined

var a = void 0;// undefined;

运算符优先级

一元运算符 (!) >算术运算符(和) > 关系运算符 > && > || > = > ,

条件语句

if语句
if(条件){
  条件成立时执行的代码
}else{
  条件不成立时执行的代码
}
if(条件1){
  条件1成立时执行的代码
}else if(条件2){
  条件2成立时执行的代码
}else if(条件3){
  条件3成立时执行的代码
}else{
  以上条件都不成立时执行的代码
}
switch
switch (条件){
   case 值1:
      当条件与 值1 匹配时要执行的代码; break;
       ...
   case 值n:
                
   当条件与 值n 匹配时要执行的代码; break;

   default:
   当以上所有的值与 条件都不匹配时要执行的代码;
}
  • case 代表 switch 里所有可能的情况
  • break 当匹配到某个 case 时,执行完要执行的代码之后,跳出switch 判断,如果没有 break ,switch 会一直向下执行,直到switch 结束或者遇到一个break为止
  • default 代表所有的case 都不能与条件匹配上时,执行default里的代码

循环语句

for循环
for(初始变量;判断条件;变化量){
  要执行的代码 (循环体)
}
  1. 执行初始条件
  2. 判断结束条件,如果条件成立 执行循环体,如果条件不成立 跳出循环
  3. 循环体执行完之后,执行变化量,然后接着判断结束条件
while循环
while(条件){
    满足条件时要执行的代码;
    变化量
}
do while 循环
do{
    满足条件时要执行的代码;
    变化量
}while(条件)

do...while... 和 while... 的区别是 do会先执行一次循环体,然后再判断条件, while是先判断条件再执行循环体

for in
  • for in通常用于对于对象的遍历
for(var i in obj){
    console.log(i);// i 指的是obj的 每一个属性名
    console.log(obj[i]);// i 是变量,要用i取obj得属性值,只能通过 obj[i] 的形式取值
    }
跳出循环的方法

break :跳出当前循环
continue :跳过本次循环;

你可能感兴趣的:(原生js基础)