分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

js总结

发布时间:2023-09-06 01:44责任编辑:傅花花关键词:js

1、解释型语言动态类型、弱类型语言

在运行的时候将程序翻译成机器语言,在运行期间才去做数据类型检测;解释型语言在运行时需要解释器,JS的解释器被称为JavaScript引擎,是浏览器的一部分。

2、入门

  请注意,JavaScript严格区分大小写。

  

  要特别注意相等运算符==。JavaScript在设计时,有两种比较运算符:

  第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

  第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

  由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

  2.1数据类型number

  JavaScript不区分整数和浮点数,统一用Number表示。

  NaN这个特殊的Number与所有其他值都不相等,包括它自己:

  NaN === NaN ??//false

   唯一能判断NaN的方法是通过isNaN()函数:

  isNaN(NaN); // true

   浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:

1 / 3 === (1 - 2 / 3); // falseMath.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

   2.2字符串类型(String)

  需要特别注意的是,字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果

concat()将两个字符串连接起来,返回一个连接后的字符串。

indexOf()返回子串第一次出现的索引。

charAt()返回指定位置的字符。要获取字符串某个指定位置的字符,使用类似Array的下标操作,索引号从0开始str(0)

lastIndexOf()返回子串最后一次出现的索引。

substring(i,j)截取字符串,i为开始位置,j为结束位置(不包含)

substr(i,j)截取字符串,i为起始位置,j为长度

slice(i,j)同substring

split()分割字符串,返回数组

length()返回字符串的长度

toLowerCase转化为小写

toUpperCase转化为大写

trim去除两端的空格

replace(i,j),将字符串中的i串全部替换为j

2.3布尔值

  一个布尔值只有truefalse两种值

  要将一个值转换为其对应的boolean值,可以使用转型函数Boolean()。

console.log(typeof Boolean("s")) ?//boolean

   以下是其他类型转换成Boolean类型规则  

数据类型

转换为true的值

转换为false的值

String

任何非空字符串

空字符串

Number

任何非零数字值(包括无穷大)

0和NaN

Object

任何对象

null

Undefined

undefined

2.4null和undefined

  Null类型是一个只有一个值的数据类型,即特殊的值null。它表示一个空对象引用,而typeof操作符检测null会返回object。

  undefined是派生自null的,因此ECMA-262规定对它们的相等性测试返回true。

2.5对象类型

1、数组

  toString()将数组转换为字符串

  join()数组通过指定的分隔符拼接为字符串

  push()在数组末尾添加一个元素,返回修改后的长度

  pop()从末尾移除一个元素,修改数组的长度,返回被移除的元素

  shift()从头部移除一个元素,返回被移除的元素

  unshift()在数组的前端添加一个元素

  reverse()逆向排序

  sort()从小到大排序,如果没有使用参数,按字符编码排序;

  如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

(1)若 a 小于 b,排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

(2)若 a 等于 b,则返回 0。

(3)若 a 大于 b,则返回一个大于 0 的值。

  concat()基于当前数组穿件新数组

var arr = [‘Lee‘, 21, ‘洛阳‘];//当前数组var arr2 = arr.concat(‘计算机编程‘);//创建新数组,并添加新元素alert(arr2);//输出新数组alert(arr);//当前数组没有任何变化

   slice()方法可以基于当前数组获取指定区域元素并创建一个新数组。  

  splice()方法主要用途是向数组的中部插入元素。

    arrayObject.splice(index,howmany,item1,.....,itemX)

参数

描述

index

必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

howmany

必需。要删除的项目数量。如果设置为 0,则不会删除项目。

item1, ..., itemX

可选。向数组添加的新项目。

//splice删除var arr = [‘‘Lee‘‘, 21, ‘洛阳‘];//当前数组var arr2 = arr.splice(0,2); ???//splice(0,2)从第0个元素开始,往后数两个元素(Lee,21)alert(arr2);//返回截取的元素alert(arr);//当前数组被截取的元素被删除//splice添加var arr = [‘‘Lee‘‘, 21, ‘洛阳‘];//当前数组var arr2 = arr.splice(1,0,‘计算机编程‘,‘江苏‘);//没有截取,但插入了两条alert(arr2);//在第2个位置插入两条alert(arr);//输出//splice替换var arr = [‘‘‘Lee‘‘‘, 21, ‘洛阳‘];//当前数组var arr2 = arr.splice(1,1,100);//截取了第2条,替换成100alert(arr2);//输出截取的21alert(arr);//输出数组

 2、Math

属  性

说  明

Math.E

自然对数的底数,即常量e的值

Math.LN10

10的自然对数

Math.LN2

2的自然对数

Math.LOG2E

以2为底e的对数

Math.LOG10E

以10为底e的对数

Math.PI

π的值

Math.SQRT1_2

1/2的平方根

Math.SQRT2

2的平方根

min()和max()

Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数;

Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数;

Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数;

Math.random()方法返回介于0到1之间一个随机数,不包括0和1。如果想大于这个范围的话,可以套用一下公式:

  值 = Math.floor(Math.random() * 总数 + 第一个值)

方  法

说  明

Math.abs(num)

返回num的绝对值

Math.exp(num)

返回Math.E的num次幂

Math.log(num)

返回num的自然对数

Math.pow(num,power)

返回num的power次幂

Math.sqrt(num)

返回num的平方根

Math.acos(x)

返回x的反余弦值

Math.asin(x)

返回x的反正弦值

Math.atan(x)

返回x的反正切值

Math.atan2(y,x)

返回y/x的反正切值

Math.cos(x)

返回x的余弦值

Math.sin(x)

返回x的正弦值

Math.tan(x)

返回x的正切值

2.3Date()

var now = new Date();
//创建一个指定日期和时间的Date对象
//就是JavaScript的月份范围用整数表示是0~11,这里传入5代表6月
//var now = new Date(2015, 5, 19, 20, 15, 30, 123);
now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)now.getFullYear(); // 2015, 年份now.getMonth(); // 5, 月份,注意月份范围是0~11,5表示六月now.getDate(); // 24, 表示24号now.getDay(); // 3, 表示星期三now.getHours(); // 19, 24小时制now.getMinutes(); // 49, 分钟now.getSeconds(); // 22, 秒now.getMilliseconds(); // 875, 毫秒数now.getTime(); // 1435146562875, 以number形式表示的时间戳

js总结

原文地址:https://www.cnblogs.com/zengjp/p/8509490.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved