码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript基础

时间:2020-04-04 22:27:23      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:读取   日期   命名规则   join()   距离   dom   大整数   获取   创建   

变量

变量的定义

变量 是数据的“命名存储”。我们可以使用变量来保存商品、访客和其他信息。
在 JavaScript 中创建一个变量,我们需要用到let(var、const) 关键字。
var:会进行变量的提升(预解析)而let不会。
const:不可以改变赋值的内容
下面的语句创建(也可以称为 声明 或者 定义)了一个名称为 “msg” 的变量:

let msg;

通过赋值操作符 = 为变量添加一些数据:

msg = ‘Hello Word‘;
//可以通过访问变量名直接读取数据
alert(msg);

可以将变量定义和赋值合并成一行

let msg = ‘Hello Word‘;

变量命名

JavaScript 的变量命名规则:

  1. 变量名称只能由字母,数字,符号 $ 和 _组成。
  2. 不能数字开头。
    如果命名包括多个单词,通常采用驼峰式命名法。也就是由多个单词组成,除了第一个单词,其他的每个单词都以大写字母开头:myName。

数据类型

JavaScript 的数据类型,共有六种。

  1. 数值(number)
  2. 字符串(string)
  3. 布尔值(boolean)
  4. null
  5. undefined
  6. 对象(object)
    通常将数值、字符串、布尔值合称为原始类型的值,为基本数据类型。
    对象是复杂数据类型,分成三个。
  7. 对象(object)
  8. 数组(array)
  9. 函数(function)

Number类型

number类型带便整数和浮点数
数字可以有很多操作,比如,乘法 *、除法 /、加法 +、减法 - 等等

let num = 123;
    num = 3.14;
    0.1+0.2 === 0.3 //false

String类型

在 JavaScript 中,文本数据被以字符串形式存储,必须被括在引号里。
在js中双引号和单引号没什么区别
如果在字符串内部要使用单引号,就必须在内部单引号前面加上转译符号反斜杠\

let str = ‘Hello‘;     //  输出   Hello
let str2 = ‘\‘Hello\‘‘;   //输出  ‘Hello‘

//字符前面加上反斜杠(\),都表示特殊含义
//   \n  换行符
//   \t  制表符

Boolean 类型(逻辑类型)

boolean 类型仅包含两个值:true 和 false。
这种类型通常用于存储表示正确(真)或错误(假)的值:true 意味着 “正确(真)”,false 意味着 “错误(假)”。

null 值

null表示空值,即该处的值现在为空
特殊的 null 值不属于上述任何一种类型。
它构成了一个独立的类型,只包含 null 值:

let age = null;

JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值。

undefined 值

特殊值 undefined 和 null 一样自成类型。
undefined 的含义是 未被赋值,未定义的。
如果一个变量已被声明,但未被赋值,那么它的值就是 undefined:

let x;
alert(x); // 弹出 "undefined"

Object类型

object是一个特殊的类型,用于存储数据集合复杂的,

数据类型检测

对于数据到底是什么类型的,js提供了三种方法:

  1. typeof运算符
  2. instanceof运算符
  3. Object.prototype.toString方法
    instanceof运算符和Object.prototype.toString方法,将在后文介绍。这里介绍typeof运算符。
//x为要检测的内容的类型,结果会返回一个类型
作为运算符:typeof x。
函数形式:typeof(x)。

数据类型转换

自动转换

自动转换为数值

在遇到字符为数值的地方,运算的时候,系统会自动调用Number函数,加参数值转为数值。
常见的运算符有+、-、*、/。会把运算子自动转换成数值。

let num1 = ‘10‘   //num为字符串
let num2 = ‘5‘   //num为字符串
+num         //10
‘10‘ - ‘5‘   //5
‘10‘  *  ‘5‘   //50
‘10‘  /   ‘5‘   //2

注意: null转换为数值时为 0; undefined 转换为数值时为NaN

自动转换成字符串

字符串的自动转换主要发生在加法运算。

‘10‘ +1   // ‘51‘
‘10‘ +‘abc‘  //‘10abc‘

自动转换成布尔值

一般转换成布尔值都是在if语句条件部分,会将非布尔值参数转成布尔值。
在需要转换的前面加上两个!!.
除了以下六个值为flase。其余的全部转为true。

0
‘‘(空字符串)
null
ndefined
NaN
false

强制转换

转换成数值Number

使用Number函数,可以将任意类型的值转化成数值。

// 数值:转换后还是原来的值
Number(324) // 324

// 字符串:如果可以被解析为数值,则转换为相应的数值
Number(‘324‘) // 324

// 字符串:如果不可以被解析为数值,返回 NaN
Number(‘324abc‘) // NaN

// 空字符串转为0
Number(‘‘) // 0

// 布尔值:true 转成 1,false 转成 0
Number(true) // 1
Number(false) // 0

// undefined:转成 NaN
Number(undefined) // NaN

// null:转成0
Number(null) // 0

使用parseInt、parseFloat函数。只能返回前面的数值的整形,否则返回NaN。

parseInt(‘42abc‘) // 42
parseInt(‘abc123‘) // NaN

转换成字符转类型String

String函数和toString函数可以将非字符串类型的值转化成字符串。

String(123) // "123"
String(‘abc‘) // "abc"
String(true) // "true"
String(undefined) // "undefined"
String(null) // "null"
String([1,2,3]) //"1,2,3"
================
123.toString() // "123"
‘abc‘.toString() // "abc"
true.toString() // "true"
undefined.toString() // "undefined"
null.toString() // "null"
[1,2,3].toString() //"1,2,3"

转换成布尔类型Boolean

Boolean()函数可以将任意类型的值转为布尔值
除了一下五种转换结果为false,其余的值全部都为true。

0
‘‘(空字符串)
null
ndefined
NaN

true跟false两个转换布尔值不会发生变化

内置对象

Math对象

Math时javascript的原生对象。提供数学功能。所有的属性和方法都必须在Math对象上调用。
Math静态属性常见的为

Math.PI  : 常数π

Math静态方法常见:

  1. Math.abs() 绝对值
  2. Math.ceil():向上取整
  3. Math.floor():向下取整
  4. Math.round():四舍五入
  5. Math.max():最大值
  6. Math.min():最小值
  7. Math.random():随机数
  8. Math.pow():指数运算
  9. Math.sqrt():平方根

Math.abs() 绝对值

Math.abs方法返回参数值的绝对值

Math.abs(6) // 6
Math.abs(-6) // 6

Math.ceil():向上取整

Math.ceil反法返回参数值的最大整数,向上取整(天花板函数)

Math.ceil(6.6) // 7
Math.ceil(-6.6) // -6

Math.floor():向下取整

Math.floor反法返回参数值的最小整数,向下取整(地板函数)

Math.ceil(6.6) // 6
Math.ceil(-6.6) // -7

Math.round():四舍五入

Math.round方法返回参数值进行四舍五入。

Math.ceil(0.4) // 0
Math.ceil(0.5) // 1
Math.ceil(0.6) // 1

Math.max(),Math.min():最大值、最小值

Math.max方法返回参数中最大的值。Math.min返回参数中最小值

Math.max(10, 2, 5) // 10
Math.min(10, 2, 5) // 2

Math.random():随机数

Math.random返回0-1之间的一个随机数[0,1),值能取到0,取不到不到1.
定义一个函数,生成任意范围的随机整数

function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

getRandomInt(min, max)

Math.pow():指数运算

Math.pow方法有两个参数,参数一:底数,参数二:幂的指数值。

// 等同于 2 ** 2
Math.pow(2, 2) // 4
// 等同于 2 ** 3
Math.pow(2, 3) // 8

Math.sqrt():平方根

Math.sqrt方法用于返回参数值得平方根。参数为负数时,返回NaN。

Math.sqrt(9) // 3
Math.sqrt(-9) // NaN

Date对象

Date对象是javascript用来处理日期和时间。
Date对象可以直接作为普通函数调用,返回当前时间的字符串

Date()
"Sat Mar 27 2020 14:47:47 GMT+0800 (中国标准时间)"

构造函数的用法

Date可以当作构造函数使用,使用关键字new创建,返回Date实例对象。

  1. toString方法返回一个完整的日期字符串。
  2. valueOf方法毫秒值
let date = new Date();
date.toString()
"Sat Mar 27 2020 14:47:47 GMT+0800 (中国标准时间)"
date.valueOf()
1585983004225

日期格式化转为本地时间

  1. Date.prototype.toLocaleString():完整的本地时间。
  2. Date.prototype.toLocaleDateString():本地日期(不含小时、分和秒)。
  3. Date.prototype.toLocaleTimeString():本地时间(不含年月日)。
  4. Date.prototype.toDateString() :英文格式
let date = new Date();

date.toLocaleString();
//2020/3/27 下午3:14:38

date.toLocaleDateString();
//2020/3/27

date.toLocaleTimeString();
//下午3:14:38

date.toDateString();
//Sat Mar 27 2020

获取日期指定的部分

  1. getTime():返回实例距离1970年1月1日00:00:00的毫秒数,等同于valueOf方法。
  2. getFullYear():返回四位的年份。
  3. getMonth():返回月份(0表示1月,11表示12月)。
  4. getDate():返回实例对象对应每个月的几号(从1开始)。
  5. getDay():返回星期几,星期日为0,星期一为1,以此类推。
  6. getHours():返回小时(0-23)。
  7. getMinutes():返回分钟(0-59)。
  8. getSeconds():返回秒(0-59)。
  9. getMilliseconds():返回毫秒(0-999)。

封装函数格式化日期对象,返回yyyy-MM-dd HH:mm:ss的形式

function getDate(d) {
  //如果date不是日期对象,返回
  if (!date instanceof Date) {
    return;
  }
  var year = d.getFullYear(),
      month = d.getMonth() + 1,
      date = d.getDate(),
      hour = d.getHours(),
      minute = d.getMinutes(),
      second = d.getSeconds();
  month = month < 10 ? ‘0‘ + month : month;
  date = date < 10 ? ‘0‘ + date : date;
  hour = hour < 10 ? ‘0‘ + hour : hour;
  minute = minute < 10 ? ‘0‘ + minute:minute;
  second = second < 10 ? ‘0‘ + second:second;
  return year + ‘-‘ + month + ‘-‘ + date + ‘ ‘ + hour + ‘:‘ + minute + ‘:‘ + second;
}

Array对象

Array对象是javascript的原生对象。同时也是构造函数。
可以使用字面量的方式和构造函数的方式创建数组。

let arr =[]
//字面量的方式创建空数组
let arr1 = new Arrar();
//创建了空数组
let arr2 = new Arrar(2) //参数为一个时表示数组长度
arr2.lenget //2
let arr3 = new Arrar(1,2)  //多个参数时,为数组内容
//   [1,2]

Array.isArray() 静态方法返回一个布尔值可以判断是否为数组,

let arr = [1, 2, 3];
typeof arr // "object"
Array.isArray(arr) // true

实例方法

  1. valueOf() 返回数组本身
  2. toString() 将数组转换成字符串形式。
  3. join() 将数组中的元素连接成字符串
  4. concat() 连接两个数组
  5. slice() 提取数组的一部分
  6. splice() 删除或替换当前数组的某些项目
  7. push()、pop() 添加到数组的最后面、删除数组中的最后一个
  8. shift()、unshift() 删除数组中的最前一个、添加到数组的最前面
  9. indexOf()、lastIndexOf() 根据内容返回索引值
  10. reverse() 翻转数组
  11. sort() 排序
  12. map() 映射
  13. forEach() 遍历数组
  14. filter() 筛选、过滤数组

valueOf()、toString()

数组的valueOf方法返回数组本身
toString() 将数组转换成字符串形式

let arr = [1, 2, 3];
arr.valueOf() // [1, 2, 3]
arr.toString() // "1,2,3"

join()

join()方法以指定参数作为分隔符,将所有数组成员连接为一个字符串返回。如果不提供参数,默认用逗号分隔

let arr = [1, 2, 3];

arr.join() // "1,2,3"
arr.join(‘‘) // ‘123‘
arr.join(‘ | ‘) // "1 | 2 | 3"

concat()

concat方法用于多个数组的合并,连接多个数组,然后返回一个新数组,原数组不变。

var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
//将数组2加入到数组1中
arr1.concat(arr2);
// [1,2,3,4,5,6]

slice()

slice方法用于复制提取数组中的某一部分,返回一个新数组,原数组不变。

//它的第一个参数为起始位置(从0开始),第二个参数为终止位置(该元素本身不包括)。
//如果只有一个参数,则一直返回到原数组的最后一个成员。
arr.slice(start,end)

let arr = [‘a‘,‘b‘,‘c‘,‘d‘]
a.slice() // ["a", "b", "c"]
a.slice(1) // [‘b‘,‘c‘,‘d‘]
a.slice(1, 2) // [‘b‘]

当参数为负数时,则在最后面倒数开始计算。

let arr = [‘a‘, ‘b‘, ‘c‘, ‘d‘]
arr.slice(-2) // ["c", "d"]
arr.slice(-2, -1) // ["b","c"]

splice()

splice()方法用于删除添加原数组的一部分成员,返回值是被删除的元素。注意,该方法会改变原数组。

arr.splice(start, count, addElement1, addElement2, ...);

splice的第一个参数是删除的起始位置(从0开始),第二个参数是被删除的元素个数。第三个参数起则为添加的内容。
当参数为一个时。表示从当前位置开始到结束

let arr = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘];
arr.splice(1) //  [‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘]
arr // ["a"]

当参数为二个时,(若起始位置为负数,表示从倒数位置开始删除)

let arr = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘];
arr.splice(4, 2) // ["e", "f"]
arr // ["a", "b", "c", "d"]

arr.splice(-4, 2) // ["c", "d"]

当参数为三个以上时。

let arr = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘];
arr.splice(4, 2, 1, 2) // ["e", "f"]  删除了e,f元素添加了1,2元素怒
arr // ["a", "b", "c", "d", 1, 2]
// 删除0个并添加一个
arr.splice(1, 0, 2) // []
arr // ["a", 2, "b", "c", "d"]

push()、pop()

push 方法用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组。

var arr = [];
arr.push(1,2) // 2
arr.push(‘a‘) // 3
arr // [1, 2,‘a‘]

pop 方法用于删除数组的最后一个元素,并返回该元素。注意,该方法会改变原数组。

var arr = [‘a‘, ‘b‘, ‘c‘];
arr.pop() // ‘c‘
arr // [‘a‘, ‘b‘]

push和pop的结合使用,构成了栈操作(先进后出)

var arr = [];
arr.push(1);
arr.push(2);
arr.push(3);
arr.pop();
arr // [1, 2]

shift(),unshift()

shift 方法用于删除数组的第一个元素,并返回该元素。注意,该方法会改变原数组。

let arr = [‘a‘, ‘b‘, ‘c‘];

arr.shift() // ‘a‘
arr // [‘b‘, ‘c‘]

push和shift结合使用,构成了队列操作(先进先出)

let arr = [];
arr.push(1);
arr.push(2);
arr.push(3);
arr.shift();
arr // [2,3]

unshift 方法用于在数组的第一个位置添加一个或多个元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组。

let arr = [‘a‘, ‘b‘, ‘c‘];

arr.unshift(2,3); // 5
arr.unshift(1);  //6
arr // [1, 2, 3, "a", "b", "c"]

indexOf()、lastIndexOf()

indexOf方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1。
lastIndexOf方法返回给定元素在数组中最后一次出现的位置,如果没有出现则返回-1
有两个参数:参数一:表示匹配的值,参数二:开始匹配的位置

let arr = [‘a‘, ‘b‘, ‘c‘];

arr.indexOf(‘b‘) // 1
arr.indexOf(‘d‘) // -1
arr.indexOf(‘a‘,1) //-1
//从索引为1的位置开始搜索

reverse() 翻转

reverse 方法用于颠倒数组中元素的顺序。返回改变后的数组,会改变原数组

let arr = [‘a‘, ‘b‘, ‘c‘];

arr.reverse() // ["c", "b", "a"]
arr // ["c", "b", "a"]

sort() 排序

sort方法对数组成员进行排序,默认是按照字符顺序排序。排序后,原数组将被改变。

let arr = [‘d‘, ‘c‘, ‘b‘, ‘a‘]
arr.sort()
// [‘a‘, ‘b‘, ‘c‘, ‘d‘]

可以自定义排序,传入一个函数作为参数

//从小到大
let arr = [1, 8, 5, 4, 6]
arr.sort(function (a, b) {
    return a - b;
    //return b-a;从大到小
})
//[1, 4, 5, 6, 8]

map() 映射

map方法将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回。

let arr = [1, 2, 3];

arr.map(function (n) {
  return n*2;
});
// [2, 4, 6]

forEach() 遍历

forEach方法可以遍历数组拿到数组的每一项,来操作数据。

arr.forEach(
    function(item,index){
        //item  就是数组里面的每个元素
        //index 就是每个索引
	}
);

filter() 筛选、过滤

filter方法用于筛选、过滤数组,返回一个满足条件组成的一个新数组

let arr = [1,2,3,4,5,6]
arr.filter(function(item){
  return item>3;
  //返回大于3的项
}
  )
  [4,5,6]

String对象

String对象是javascript提供的字符串对象包装类型。
实例属性:length返回字符串的长度

‘abcd‘.length  //4

实例方法:

  1. charAt() 根据位置返回字符
  2. charCodeAt()
  3. concat()
  4. slice()
  5. substring()
  6. substr()
  7. indexOf()、lastIndexOf()
  8. trim()
  9. to(Locale)LowerCase()、to(Locale)UpperCase()
  10. replace()
  11. split()

charAt()

charAt方法返回指定位置(索引)的字符

let str = ‘hello‘;
str.charAt(1) // ‘e‘

charCodeAt()

charCodeAt方法返回字符串指定位置(索引)的Unicode码

let str = ‘123abc‘;
str.charCodeAt(1);  //  50
str.charCodeAt(3);  //   97

concar()

concat方法用于两个的字符串的合并,返回一个新字符串

let str1 = ‘hello‘;
let str2 = ‘world‘;
str1.concat(str2);  //  ‘helloworld‘

slice()

slice方法用于提取字符串的一部分,返回新字符串
参数1:起始位置 。参数2:结束位置(本身不包含)

let str = ‘hello‘;
//参数只有一个时 一直到字符串结束
str.slice(1); // ello
str.slice(2,4)// ll

如果参数为负值,表示从最后开始倒数计算

let str = ‘hello‘;
str.slice(-2); //lo
str.slice(-3,-1) //ll

substring()

substring方法跟slice方法使用一样

substr()

substr方法跟前两种一样。区别在于substr第二个参数是截取的字符串长度

let str = ‘hello
//参数只有一个时,则一直到原字符串结束
str.substr(2) //llo
str.substr(2,2) //ll

indexOf()、lastIndexOf()

indexOf方法返回给定字符在字符串中第一次出现的位置,如果没有出现则返回-1。
lastIndexOf方法返回给定字符在字符串的尾部开始匹配,如果没有出现则返回-1。

let str = ‘hello world‘
str.indexOf(‘o‘) //4
str.indexOf(‘c‘) //-1
str.lastIndexOf(‘o‘) // 7

当有两个参数时,第二个参数表示从该位置开始匹配

let str = ‘hello world‘
str.indexOf(‘l‘,3) //3
str.lastIndexOf(‘o‘, 6) // 4

trim()

trim方法用于去除字符串两端的空格,返回一个新字符串
该方法去除的还有制表符(\t,)、换行符(\n)、回车符(\r)

let str = ‘   hello world   ‘
str.trim()// ‘hellow world‘

to(Locale)LowerCase()、to(Locale)UpperCase()

toLowerCase方法用于将字符串全部转为小写,
toUpperCase方法用于将字符串全部转为大写,

let str = ‘Jack‘;
str.toLowerCase()  //‘jack‘;
let str1 = ‘jack‘
str1.toUpperCase()  // JACK;

search方法用于原字符串是否匹配到某个字符串,返回值为匹配到第一个位置,没匹配到返回-1

let str = ‘cat,bat‘
str.search(‘at‘) // 1

replace()

replace方法用于替换匹配的子字符串,一般情况下只替换第一个匹配(若要匹配所有,需要使用正则g修饰符)

replace(旧字符,新字符)
let str = ‘abca‘;
str.replace(‘a‘,‘b‘); // ‘bbca‘

split()

split方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组。

let str = ‘a-b-c‘;
str.split();  // ["a-b-c"]
str.split(‘‘);  // ["a","-","b","-","c"];
str.split(‘-‘);  // ["a","b","c"];

。。。

Javascript基础

标签:读取   日期   命名规则   join()   距离   dom   大整数   获取   创建   

原文地址:https://www.cnblogs.com/wenyongjie/p/12634432.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!