简介:JavaScript 运行在客户端(浏览器)是一种客户端语言,javascript的引擎被称为JavaScript引擎,为浏览器的一部分广泛用于客户端的脚本语言

  应用场景:网页特效, 服务端开发(Nood.js),命令行工具(Noode.js),桌面程序(Electron),App(Cordova), 控制硬件-物联网(Ruff),游戏开发(cocos2d-js)。

  js的组成: ECMAScript  是js的核心, DOM 文档对象模型 (可以操作浏览器窗口 比如:弹出框 控制浏览器跳转 获取分辨率等) BOM 浏览器对象模型 (可以把HTML看做是文档树 通过DOM体统的API可以对书上的节点进行操作)。

  一、 变量定义规则

  1. 变量声明 

var 变量名=值;
var 变量名; 先申明变量 以后在赋值 变量的命名规则和规范
规则-必须遵守,不遵守会报错
由字母、 数字、下划线、$符号组成 不能以数字开头
不能是关键字和保留字 如 for while
区分大小写
规范-建议遵守
变量名必须有意义
遵守驼峰命名法 首字母小写 后面的单词的字母大写 如:userName 案列 交换两个变量的值
通过第三个变量来做临时存储

  

二、 数据类型

  1. 简单数据类型


Number
十六进制 一般会加前缀 0x 来和十进制区分
浮点数
判断一个变量是否是数字: NaN isNaN 判断是否是数字

string
\ 转义
\n 换行
\t 制表符 一般代表四个空格
\r 回车


获取一个字符串长度length
console.log(msg.length)
字符串拼接+ (+有两种含义 跟python一样)
如果+的一遍是字符串一遍是数值类型 会先把数值类型自动转换成字符串然后在进行拼接

Boolean
true和false (区分大小写)
计算机内部 1为true 0为false


Underfind Null
undefined 表示一个声明了没有复制的变量
null表示空,变量的值如果想设置为null 必须手动设置

  2.  复杂类型

复杂数据类型
Object 数组
获取变量的类型typeof
console.log(typeof age); 字面量
在源代码中一个固定值的表示法 注释
单行注释 // 用来描述下一行的作用
多行注释 /* */

  3. 数据类型转换

数据类型转换
1. 转换成字符串的方法
toString
console.log(num.toString());
ps: null undefined没有toString方法
2. String() 一般不用来转换null和undefined 3. 字符串拼接 加上一个空字符串即可
console.log(typeof(isRight + '')) ps: typeof 可以直接空格写变量 加括号优先执行括号 其他数据类型转换成数值类型
1. Number()
console.log(Number(isRight))
当number把字符串转换成数值的时候 如果字符串中有一个字符不是数字的 时候,会返回一个NaN
2. parseInt() 无法把布尔转换成字符类型
转行字符串的时候如果遇到数字就会转换数字,如果遇到非数字就会返回就会把数字提取出来 转小数时 不解析点
3.parseFloat() 无法转换布尔 跟parseInt 一样
如果只有整数 就解析整数, 一般能解析一个点 4. 取正数或者去负数+ -
直接在字符串的变量名前加正号或者负号
也可以转换布尔 5. 字符串-0 转换成布尔 Boolean()
非零非空非NaN就是True

  4. 算术符

运算符 Operator
算术运算符
+ - * / %
跟数学里面一样 唯一的区别就是 5/0 等于无穷大 5%0 等于NaN 一元运算符
表达式有一操作数和一个操作符一个表达式组成
++、 -- 只有一个操作数的运算符
++ 自身加1
前置++ 表达式 先让num自身+1 然后再返回表达式的结果
后置++ 表达式 先返回表达式的结果 再回在对其自身加1 -- 自身减1
原理同上 逻辑运算符(布尔运算符)
1. && 与 两个操作数同时为true 结果为true 否则为false
2. || 或 一个操作为true 结果为true
3 ! 非 取反 (一元运算符) 关系运算符 (用来比较两个)
< > >= <= (比较大小的)
== != (比较相等的)
=== !== (和上面的区别是既比较值又比较类型) 赋值运算符
+= -= *= /= %=
运算符优先级
1.()优先级最高
2. 一元运算符
3. 算数运算符
4. 相等运算符
5. 逻辑运算符
7. 赋值运算符

js入门第一篇的更多相关文章

  1. ElasticSearch入门 第一篇:Windows下安装ElasticSearch

    这是ElasticSearch 2.4 版本系列的第一篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  2. Flink入门-第一篇:Flink基础概念以及竞品对比

    Flink入门-第一篇:Flink基础概念以及竞品对比 Flink介绍 截止2021年10月Flink最新的稳定版本已经发展到1.14.0 Flink起源于一个名为Stratosphere的研究项目主 ...

  3. Zookeeper 入门第一篇

    转载原文地址: ZooKeeper学习总结 第一篇:ZooKeeper快速入门 ZooKeeper学习总结 第二篇:ZooKeeper深入探讨 ZooKeeper学习第一期---Zookeeper简单 ...

  4. JavaMail入门第一篇 邮件简介及API概述

    现如今,电子邮件在我们的生活当中扮演着越来越重要的角色,我们每个人几乎都会与其打交道(至少时不时我们都会接收到莫名其妙的垃圾邮件),在工作中,使用邮件进行交流沟通,可以使我们的工作有迹可循,也显的较为 ...

  5. flask入门第一篇

    一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不 ...

  6. JS原生第一篇 (帅哥)

    "流程控制语句":if.for. 1.1 if 选择语句,给程序添加了多种执行路线. 1 if(){ 2  语句1 3 }else if(){ 4  语句2 5 }else if( ...

  7. Android JNI入门第一篇——HelloJni

    android支持使用NDK开发C程序,关于配置NDK环境问题应该不用再赘述了,这个网上有很多,这里通过一篇实例来讲述简单的JNI开发,大家可以参考这篇文章(Get Your Eclipse-Inte ...

  8. Node.js入门第一天

    一.Node.js简介 1.1 简介 V8引擎本身就是用于Chrome浏览器的JS解释部分,但是Ryan Dahl这哥们,鬼才般的,把这个V8搬到了服务器上,用于做服务器的软件. Node.js是一个 ...

  9. AJAX入门第一篇就够了

    什么是Ajax Ajax(Asynchronous JavaScript and XML) 异步JavaScript和XML Ajax实际上是下面这几种技术的融合: (1)XHTML和CSS的基于标准 ...

随机推荐

  1. 阶段5 3.微服务项目【学成在线】_day18 用户授权_07-动态查询用户权限-权限数据模型

    3 动态查询用户权限 3.1 需求分析 截至目前在测试授权时使用的权限数据是静态数据,正常情况的流程是: 1.管理员给用户分配权限,权限数据写到数据库中. 2.认证服务在进行用户认证时从数据库读取用户 ...

  2. mysql stream read.

    Statement stmt = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY) ...

  3. MySQL数据库表的设计和优化(上)

    一.单表设计与优化: (1)设计规范化表,消除数据冗余(以使用正确字段类型最明显):数据库范式是确保数据库结构合理,满足各种查询需要.避免数据库操作异常的数据库设计方式.满足范式要求的表,称为规范化表 ...

  4. MySQL中使用replace into语句批量更新表数据

    作为示例,我们在这里使用名为testdb的数据库,并且在其中创建两张一模一样的表: drop table if exists test_table_1; create table test_table ...

  5. 【Leetcode_easy】746. Min Cost Climbing Stairs

    problem 746. Min Cost Climbing Stairs 题意: solution1:动态规划: 定义一个一维的dp数组,其中dp[i]表示爬到第i层的最小cost,然后来想dp[i ...

  6. 【Leetcode_easy】733. Flood Fill

    problem 733. Flood Fill 题意:图像处理中的泛洪填充算法,常见的有四邻域像素填充法.八邻域像素填充法.基于扫描线的像素填充法,实现方法分为递归与非递归(基于栈). 泛洪填充算法原 ...

  7. (四)Asp.net web api中的坑-【api的返回值】

    void无返回值 IHttpActionResult HttpResponseMessage 自定义类型 我这里并不想赘述这些返回类型, 可以参考博文http://blog.csdn.net/leon ...

  8. 【c# 学习笔记】封装

    封装 指的是把类内部的数据隐藏起来,不让对象实例直接对其操作.c#中提供了属性机制来对类内部的状态进行操作. 在c#中,封装可以通过Public.Private.Protected和Internal等 ...

  9. Anaconda是什么?Anconda下载安装教程(1)

    一.如果从事Python开发,配置环境需要安装两个包: 第一个安装开发工具,俗称IDE : 推荐使用 Pycharm 第二个安装开发工具包: Anaconda ps:Windows 下 Pycharm ...

  10. java日志框架系列(8):logback框架PatternLayout详解

    当你想要将记录以你想要的的格式写到目的地时,那么你就需要了解如何设置自定义的格式了. 1.PatternLayout 转换模式:由文本文字和格式转换符组成. 下面了解一下格式转换符与格式修饰符表示的意 ...