小白学微信小程序需要的JavaScript知识点

文章目录

  • 小白学微信小程序需要的JavaScript知识点
    • 1 js数据类型
      • Number
      • 字符串
      • 布尔值
      • 数组
      • 对象
      • null和undefined
    • 2 常用js变量常量声明,let,const
    • 3 js 判断各种数据类型 typeof 几种类型值
    • 4 js类型转换
    • 5 js比较是否相等,===符号
    • 6 js 遍历数组和对象

1 js数据类型

在JavaScript中定义了以下几种数据类型:

Number

JavaScript不区分整数(int)和浮点数(float),统一用Number表示,以下都是合法的Number类型:

123; // 整数123
0.456; // 浮点数0.456
1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
-99; // 负数
NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity

但在声明变量时,可以指定是int还是float

int a = 123; // a是整数类型变量,类型用int申明
a = "ABC"; // 错误:不能把字符串赋给整型变量
let b = parseInt('123')

字符串

字符串是以单引号’或双引号"括起来的任意文本,比如'abc'"xyz"等等。请注意,''""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有abc这3个字符。

布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有truefalse两种值,要么是true,要么是false,可以直接用truefalse表示布尔值,也可以通过布尔运算计算出来。

数组

数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型。例如:

[1, 2, 3.14, 'Hello', null, true];

对象

JavaScript的对象是一组由键-值组成的无序集合,例如:

var person = {name: 'Bob',age: 20,tags: ['js', 'web', 'mobile'],city: 'Beijing',hasCar: true,zipcode: null
};

JavaScript对象的键都是字符串类型,值可以是任意数据类型。上述person对象一共定义了6个键值对,其中每个键又称为对象的属性,例如,personname属性为'Bob'zipcode属性为null

要获取一个对象的属性,我们用对象变量.属性名的方式:

person.name; // 'Bob'
person.zipcode; // null

null和undefined

null表示一个“空”的值,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”。

在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。但是,在JavaScript中,还有一个和null类似的undefined,它表示“未定义”。

JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用nullundefined仅仅在判断函数参数是否传递的情况下有用。

2 常用js变量常量声明,let,const

使用let关键字声明变量和初始化。使用let声明的变量可以赋值任何类型的值

// 下面使用都是正确的,不会有类型冲突
let indexId = '111' //使用let声明一个变量
console.log(indexId)  //控制台打印indexId值indexId = parseInt(indexId)  //parseInt是把字符串转为整形,这同时也说明let声明的变量可以赋值不同类型的值
indexId = true

js有几种变量声明的方式,比如var,string,等等,但我看的课程老师说使用let比较好,避免了一些var的缺陷

在JavaScript中var有啥缺陷

使用const声明常量,之后不能再赋值,在小程序可以作为全局变量声明

const tet = 'test'

3 js 判断各种数据类型 typeof 几种类型值

js 有个typeof 用来判断各种数据类型,有两种写法:typeof xxx ,typeof(xxx)

let indexId = '111' //使用let声明一个变量
console.log(typeof indexId);
indexId = parseInt(indexId)  //parseInt是把字符串转为整形,这同时也说明let声明的变量可以赋值不同类型的值
console.log(typeof(indexId));

结果:一个是字符串类型,另一个是数值类型

4 js类型转换

一、转为字符串:使用 .toString或者String。

1、 .toString()方法:注意,不可以转null和underfined

//转为字符串-->toString方法
let bool=true;
bool = bool.toString()
console.log(typeof bool); //输出string
//注意,toString不能转null和underfined.

2、String()方法:都能转

console.log(String(null));

3、隐式转换:num + “”,当 + 两边一个操作符是字符串类型,一个操作符是其它类型的时候,会先把其它类型转换成字符串再进行字符串拼接,返回字符串

let a=true;
let str= a+"";
console.log('str');

二、转为数值类型

1、Number():Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN

console.log(Number(true));

2、parseInt():

let a="12.3px";
console.log(parseInt(a);
//结果:12.3.  如果第一个字符是数字会解析知道遇到非数字结束.
let a="abc2.3";
console.log(parseInt(a);
//结果:返回NaN,如果第一个字符不是数字或者符号就返回NaN.

3、parseFloat(): parseFloat()把字符串转换成浮点数,parseFloat()和parseInt非常相似,不同之处在与parseFloat会解析第一个. 遇到第二个.或者非数字结束如果解析的内容里只有整数,解析成整数。

4、隐式转换:

let str="123";
let num=str-0;
console.log(num);
//结果为数值型;

三、转换为Boolean():0, ‘’(空字符串), null, undefined, NaN 会转换成false 其它都会转换成true

方法:

1、Boolean():

console.log(Boolean(2));//输出true

2、隐式转换

let message=3;
if(message){console.log('成功');};//会输出 成功

5 js比较是否相等,===符号

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

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

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

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

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

NaN === NaN; // false

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

isNaN(NaN); // true

最后要注意浮点数的相等比较:

1 / 3 === (1 - 2 / 3); // false

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

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

6 js 遍历数组和对象

  • 遍历数组: JavaScript的数组可以包括任意数据类型

    let arr = ['关羽','张飞',1.1, null, true, ['赵云']];//定义数组
    //遍历数组
    for(let i = 0;i<arr.length;i++){console.log(arr[i]);
    }
    
  • 遍历对象

let obj = {'name':'webbc','age':22,'area':'淮南'};//定义对象
//遍历对象元素
for(let k in obj){console.log(k+':'+obj[k]);//注意这里应该使用obj[k]这种方式来遍历属性,如果使用obj.k,就会认为obj对象中有一个k属性
}

可以获取键值列表,然后再遍历。

let keys = Object.keys(obj)
console.log(keys) //["name", "age","area"]


小白学小程序需要的JavaScript知识点相关推荐

  1. 小程序入门到精通(三):学小程序必备技术基础-flex布局

    学小程序我们需要有点html.css.js基础,而flex布局是我们小程序常用的css布局,学习小程序之前,我们需要了解一些css方面的布局知识-Flex布局,Flex 布局将成为未来布局的首选方案 ...

  2. 零基础学小程序 —— 模板样式(三)

    目录 前言 1.什么是 WXSS 2.WXSS 和 CSS 的关系 3. rpx 3-1 什么是 rpx 尺寸单位 3-2 rpx 的实现原理 3-3 rpx 与 px 之间的单位换算 4. 样式导入 ...

  3. 【微信小程序】基于JavaScript的花店商城小程序微信云开发

    [微信小程序]基于JavaScript的花店商城小程序微信云开发 用Java Script语言进行一次微信小程序开发 文章目录 前言 一.功能总览 二.功能显示 1.搜索框 2.轮播图 3.主题导航栏 ...

  4. 微信小程序中的JavaScript 简明介绍

    小程序的主要开发语言是 JavaScript ,开发者使用 JavaScript 来开发业务逻辑以及调用小程序的 API 来完成业务需求. 1 ECMAScript 在大部分开发者看来,ECMAScr ...

  5. Uni-app开发微信小程序的一些基础知识点包括开发工具的安装和项目的初始配置运行(边学边更新)

    文章目录 1.开发工具 1.1 HBuilder X 安装 1.2 微信开发者工具 安装 1.3 HbuilderX 文档 2.创建初始项目运行 2.1 创建Uni-app项目 2.2 运行 2.2. ...

  6. 【微信小程序】零基础学 | 小程序语法

    在前面的章节中讲过WXML用于描述页面的结构.WXS用于结合WXML构建出页面的结构.WXSS用于描述页面的样式,它们三者都有特定的语法.其中,WXSS与CSS相差不大,所以就不单独列出了.本章主要讲 ...

  7. 小程序实战工作的知识点总结

    前言 有一些知识点在另一篇文章了,毕竟小程序也是前端的一种嘛,尽量标题描述清晰一点,你们看目录好找. 前端笔记 -- 不重复造轮子(遇到就更新内容)_坐等夕阳落time的博客-CSDN博客 1 跨页面 ...

  8. 今日头条适配方案_探索头条小程序开发!JavaScript为什么成了众多小程序的首选?...

    从13年百度率先提出轻应用的概念以来,支付宝,微信等好多大流量App都借助自己的平台,推出了小程序.小程序的优势很明显:轻量.无需安装.随用随走.性能又可以媲美原生的应用,更重要的是可以充分发挥各自平 ...

  9. wx轮播图接口学习用json格式_零基础学小程序008----列表和轮播图的实现,小程序解析json数据...

    点击下面网址进入系列教程 上一节带领大家实现领简单的计算器,这节来带领大家学习小程序列表功能. 本节知识点 1,定义本地json文件 2,本地文件引入 3,小程序列表渲染实现 4,解析本地json(为 ...

最新文章

  1. Android键盘面板冲突 布局闪动处理方案
  2. 审计某开源商城中的漏洞大礼包
  3. html画布360图案填充_在Photoshop中创建带有图案的抽象设计
  4. django 1.8 官方文档翻译: 1-2-6 编写你的第一个Django应用,第6部分
  5. 记录一下这几天写专利的日子
  6. 【浏览器】解决QQ浏览器背景页面变成全黑(类似底片反色)
  7. CTF古典密码:移位密码
  8. 使用ssh远程连接家庭电脑
  9. 操作系统 FCFS,SPF,HRRN算法的实现
  10. 【综述】方面级情感分析 Aspect-level Sentiment Classification
  11. 电脑遇到闪屏问题怎么解决
  12. Systemd Spec 宏
  13. 斯坦福公布3D街景数据集:2500万张图像,8个城市模型 | 下载
  14. WRDS卓越学者和沃顿研究数据与分析图书馆员会议在北京宾大沃顿中国中心举行:庆祝研究、思想领导力和全球合作方面的创新
  15. Facenet 原理介绍
  16. 分享几个微信实用小技巧(二)
  17. 纯css画梯形,纯CSS3实现的梯形立方体
  18. Raspberry PI 编译WLan驱动模块, 并配置登录WIFI
  19. jenkins扫码安装iOS ipa包实现关键技术点
  20. LeetCode 每日一题 42. 接雨水 详细多种题解 C++描述

热门文章

  1. 火车相撞之殇:我们能看见什么?
  2. 软件企业需求的人才(开发人员与软件开发工程师综合对比篇)
  3. LaTex中英文简历代码示例
  4. 四川大学计算机导论考试,四川大学计算机导论期末例题.doc
  5. 联想服务器万全T260G3系统,联想 万全T260 G3服务器 新品发布
  6. NodeJS微信公众平台开发
  7. 学生选课及学籍管理C++
  8. 计算机io接口主要功能,计算机基础知识2:IO接口及电源介绍.ppt
  9. vant步进器传值_Vant Uploader 文件上传
  10. 【Android N7.0】Framework层实现派发HOME按键到Application层的一种简单方案