js基础1 输入输出方式 数据类型
1.javascript基本概念
js是一种解释型语言,可以边运行边编译,html的架构https://www.html5rocks.com/en/tutorlals/internals/howbrowsweswork/
javascript严格区分大小写
javascript由三部分组成,ECMAScript,DOM,BOM
ECMAScript:欧洲计算机制造协会标准
DOM:js操作网页上元素(标签)的api
BOM:js操作浏览器的部分功能的api
js有行内样式、内嵌样式和外链样式
需要用js操作页面元素时,不能将javascript代码直接写入head中(src引入也一样),因为浏览器默认从上至下解析代码,当解析到head中js代码时,body里的代码还未解析,无法执行动作。
解决:把在head中的js代码加入到window.onload = function(){代码}中去
window.onload界面全部被加载完成后,才会加载其中的语句 这也是js代码通常写在body最低端的原因
2.javascript常见输出方式
2.1 弹窗形式输出
“alert” 如果alert内容不是数字,需要用单引号或者双引号括起来 弹窗中有确定按钮
”confirm“ 弹窗中有确定、取消按钮
“prompt” 弹窗中有按钮和输入框,且返回值是字符串类型
2.2 网页内容区域输出
“document.write” 直接写到网页内容界面
2.3 开发者工具控制台输出
“console.log” 写进控制台
“console.warn” 警告输出
“console.warn" 错误输出
3.ECMAScript学习
3.1 js常量
1.整型常量 整数,
2.实型常量 小数
3.字符串常量 单/双引号括起来的内容
4.布尔常量 true/false
5.自定义常量 const 常量名称 = 常量取值 不可更改
js中单独出现的数字也是常量,不可以更改 .toString不行
3.2 js变量
1. var 变量名称; 这时浏览器会为此变量分配一个存储空间2. 变量使用 变量名称 = 变量数值;3. 获取变量数据
变量第一次赋值称为变量初始化;若变量没有初始化,则存储undefined
初始化方式:先定义变量再初始化;定义变量的同时进行初始化
可以同时定义多个变量 var 变量一,变量二;
变量数值保持相同,可以对多个变量进行赋值 变量一=变量二=变量三=xxxx;
变量数值不同,赋值:var 变量一 = xxx,变量二 = xxx;
变量之间可以互相赋值,变量一 = 变量二; 将变量二的值拷贝一份给变量一
若两次var 定义统一变量名,则变量数值以最后定义为准
在ES6之前先使用变量再定义变量,不会报错 因为浏览器解析js代码前的预处理:
将当前js代码中所有变量的定义和函数的定义放在全部代码最前面
问题解决:用let代替var
var a = 3 与 a = 3的区别
- 在函数作用域内 加 var 定义的变量是局部变量,不加 var 定义的就成了全局变量
- 使用var定义的变量会发生变量提升
- 在全局作用域下,使用 var 定义的变量不可以 delete,没有 var 定义的变量可以 delete。也就说明隐含全局变量严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过 delete 删除,而变量不可以。
3.3 标识符
标识符只能由字母、数字、下划线和$组成,数字不能做开头;标识符不能是ES中的关键字或保留字;标识符一般都采用驼峰命名法;
4.数据类型
在JS中一共有基本数据类型和引用数据类型两大类,又有六种数据类型
基本数据类型:
Number 数值 整数以及小数
String 字符串 单/双引号括起来的数值就是字符串类型
Boolean 布尔 true和false
Undefined 未定义
Null 空值
symbol(ES6)
引用数据类型:
Object 对象
操作符 typeof 可以用来检测数据类型;
4.1 转换为数值类型
字符串转换为数值类型:
Number(常量或变量);类似于string();函数,根据输入的数值重新生成一个
如果字符串中没有数据,转换的结果为0
如果字符串中的数据不仅仅是数值,转换结果为NaN : not a number,但数值类型为number
布尔类型转换为数值类型:
- Number(常量或变量);
- 若布尔类型为true,转换结果为1;false转换结果为0
null类型转换为数值类型:
- Number(常量或变量);
- 转换结果为0;
undefined类型转换为数值类型:
Number(常量或变量);
转换结果为NaN,但数值类型为number
数学符号+或—变量/常量 方式转换
本质上 也是调用了number函数;但“-”减号转换会改变数值的正负性
let str = “123”;let num = +str;转换结果为123,number类型
let str = “123”;let num = -str;转换结果为-123,number类型
parseInt(需要转换的字符串)/parseFloat(需要转换的字符串)
parseInt把字符串内的整数部分提取出来,转换为数值类型;例如3.14将被转换为3,12mm将被转换为12;
parseFloat可以提取小数;
两种方式都是由左至右提取数值,遇到非数值会立即停止;停止时若没有遇到数字,返回NaN;
两种方式都会将输入当做字符串处理,例如输入布尔类型true,会被认为是字符串true四个字母
parseInt函数:
parseInt(string, radix)
4.1 转换为字符串类型
Number、Boolean、Undifned和Null类型都可以转换为字符串类型;
对于Number和Boolean类型来说,可以通过 变量名称.toString()的方式来转换,拷贝转换不会影响原有数据类型
String(变量名称);可以转化所有的基本数据类型;String可以将常量复制转化为字符串类型,但.toString()不可以
变量或者常量+单/双引号即可转化为字符串类型 value+“” 所有基本数据类型都可以转换
4.3 转换为布尔类型
boolean(常量/变量)函数;
- 字符串类型转换为布尔类型;转换时,当字符串为空时,转换为false,不为空(包括space和tab)转换为true;
- 数值类型转换为布尔类型;转换时,只有数值为0以及NaN时,才会转换为false;
- null类型转换为布尔类型;转换为false;
- undefined类型转换为布尔类型;转换为false;
4.4 判断数据类型
typeof;instanceof;
undefined和null的区别
undefined代表定义未赋值;null代表赋值但值为null,null可以作为值赋给对象
什么时候为变量赋值为null?
初始赋值
将变量赋值为null,表明将要赋值为对象,代码严谨;结束前赋值
一个对象赋值给了某个变量后,将此变量赋值为null可以释放对象,使得对象成为垃圾对象被垃圾回收器回收严格区分变量类型和数据类型?
数据类型:基本类型和对象类型;变量类型(变量的内存中值的类型):基本类型(保存基本类型数据)和引用类型(其中保存的是对象的地址)
var c = {} //将对象赋值给c后,c存储的是对象的地址,但typeof c输出object,这时会根据地址值访问到指向的数据 var b = {} console.log(b === c);//false,因为引用地址不同
js基础1 输入输出方式 数据类型相关推荐
- 【JS基础】类型转换——不同数据类型比较
小试牛刀 输出下列数据比较结果 [] == 0; //==============================================================true[] == f ...
- js基础--数据类型检测的相关知识
欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...
- ie9无法获取未定义或 null 引用的属性“indexof”_前端JS基础篇(二)JS基本数据类型和引用数据类型及检测数据类型方法...
JS中的数据类型 (一).基本数据类型(值类型) 1.number:数字 -12.12.5.-12.5 0这些数字都是number: js中增加了一个number类型的数据:'NaN' typeof ...
- js php 数据类型判断,【js基础】变量类型判断
类型判断方法比较: 如果需要想详细了解,请看下文: 注:原封不动复制备份,防止删帖 在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, B ...
- JS基础-Java Class类以及获取Class实例的三种方式
JS基础-Java Class类以及获取Class实例的三种方式 由于JVM为每个加载的class创建了对应的Class实例,并在实例中保存了该class的所有信息,包括类名.包名.父类.实现的接口. ...
- 超全的auto.js基础操作,目前是autoX.js的控制方式。2023年7月9日更新!(第2/4章)
02_auto.js基础操作2/4 文章目录 02_auto.js基础操作2/4 复杂界面 待办事项 登录界面 界面模板 用户调查 一个小测试 画布 函数图像简单版 函数图像高级版 脚本引擎 停止所有 ...
- 小汤学编程之JavaScript学习day01——认识JS、JS基础语法
一.认识JS 1.JavaScript的组成 2.浏览器执行js简介 3.JavaScript是什么? 4.扩展内容 二.JS基础语法 1.代码书写位置 2.变量 ...
- 前端三刺客---JS(基础语法)
文章目录 JS初识 JavaScript和HTML和CSS的关系 JavaScript代码运行过程 JavaScript的组成 JS 第一个Hello World JavaScript的书写格式 JS ...
- js基础day01小结
第02阶段.前端基本功.前端基础.入门语法 计算机知识补充 学习目标 理解 简单了解计算机组成 认识计算机内存 一. 核心内容 1. 计算机组成 1.1 软件(程序) 系统软件:Windows.Lin ...
最新文章
- java 必须存在默认构造器_Java默认构造方法在字节码的实现
- # LeetCode集锦(四) - 第13题 Roman To Integer
- python动态图-不就是用Python做个动态图吗?看招
- url参数拼接 php,PHP解析url并得到url参数方法总结
- 学习http only cookie以及javascript创建cookie的方式
- strace/linux
- 对外汉语语料库有哪些_史上最全最新的语料库资源大全【对外汉语教学研究工具】...
- 【毕业设计】基于大数据的销量数据预测 -python销量预测 大数据 可视化
- python取出数组大于某值_计算矩阵中大于某个值的所有值
- gitee 链接报错
- 排序算法--快排的优化
- 2012 nba playoff 观感
- Android Fragment重叠问题解决
- 隐私计算工程化之殇,为什么“久攻不破”?
- 电脑如何通过数据线连接手机网络?(USB共享网络)
- java后台获取微信分享二维码 并返回给前端
- 100以内能被7和3整除的数的和
- Gym - 102174G 神圣的 F2 连接着我们 (线段树优化建图 + 多源最短路)
- Fastadmin一键生成菜单栏目
- 自旋锁与互斥锁的对比、手工实现自旋锁
热门文章
- Mybatis异常错误:Mapper method attempted to return null from a method with a primitive return type (int)
- smart200PLC TCP通讯
- c语言中的多线程的实现
- php常用的加密解密方法
- Redis第 2讲:配置Redis访问密码及端口号
- 编写一个布雷程序,在一个10*10的范围内随机布5-10颗雷,显示结果
- 【数据库复习】 模式分解例题
- Myth源码解析系列之三- 环境搭建
- java并发编程实战wwj----------第三阶段-------------ConcurrentHashMap----------------72
- usb转串口驱动ch341安装及安装后无效的处理办法