放在函数里面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
<style type="text/css">
h1 {
color: red;
}
</style>
</head>
<body>
<p id="dem">改变内容</p>
<button type="button" onclick="dd()">点击</button>
<script type="text/javascript">
function dd(){
document.getElementById('dem').innerHTML='<h1>Hello Javascript</h1>';
} </script>
</body>
</html>

(一)输入输出

语句 功能
window.alert(); 弹出警告框
document.write(); 写入HTML,重置文档
innerHTML(); 写入HTML,不会重置文档
console.log(); 写入控制台

1.alert();

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<button type="button" onclick="alert('hello word!');">点击</button>
</body>
</html>

2.innerHTML
在被选中元素的内部添加新的HTML代码;不会使页面重置

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
<style type="text/css">
h1 {
color: red;
}
</style>
</head>
<body>
<p id="dem">改变内容</p>
<button type="button" onclick='document.getElementById("dem").innerHTML="<h1>Hello Javascript</h1>"'>点击</button>
</body>
</html>

3.document.write();

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<p>Frist</p>
<button type="button" onclick='document.write(5+6);'>点击</button>
</body>
</html>

4.console.log();

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<p>Frist</p>
<button type="button" onclick='console.log("sssaa")'>点击</button>
</body>
</html>

常用输入
1.prompt对话框

prompt(text,defaultText);

text:可选,在对话框中显示的纯文本
default:可选,默认的输入文本

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<button type="button" onclick="f_prompt()">点击</button>
<script type="text/javascript">
function f_prompt(){
var name=prompt("请输入姓名!","admin");
if(name!=null&&name!=""){
document.write("你好!"+name+"!");
}
else{
alert("Wrong!");
}
}
</script>
</body>
</html>

(二)变量,常量,字面量

常量:const q=10;不可改
变量:可以使用var关键字声明变量,变量的值可以是任意类型

var name="sss";

let与var类似,但是只是声明的变量只在其所在代码块内有效

let name="sss";

变量提升:
浏览器会先解析代码
例子:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
console.log(content);
</script>
</body>
</html>

以上代码会报错: content is not defined

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
console.log(content);
var content="sss";
</script>
</body>
</html>

以上代码不会报错:undefined(为content的值)
因为浏览器将 var content=“sss”;拆分为var content;content=“sss”;然后将var content;提到代码最前面
所以上面代码实际为:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
var content;
console.log(content);
content="sss";
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
var content;
console.log(content);
content="sss";
console.log(content);
</script>
</body>
</html>

1.例题:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<button onclick="foo();">点解</button>
<script type="text/javascript">
function foo(){
if(false){
//var content="sss";
}
console.log(content);
}
</script>
</body>
</html>

var content=“sss”;
注释掉前:undfined
注释掉后:报错
2.例子

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
console.log(vl);
var vl=100;
function foo(){
console.log(vl);
var vl=200;
console.log(vl);
}
foo();
</script>
</body>
</html>

结果为:
undfined
undfined
200

全局污染

1.不写关键字

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
function foo(){
vl=200;
}
foo();
console.log(vl);
var v1=100;
console.log(vl);
</script>
</body>
</html>

输出的都是200

(三)基本数据类型

  • number
  • string
  • boolean
  • symbol
number
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
var v1=100;
var v2=100.2;
console.log(typeof v1);
console.log(typeof v2);
</script>
</body>
</html>
NaN

代表非数字的值,两个等于号只能比较值,不能比较类型;三个等于号可以比较类型

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
var v1=100;
var v2="100";
console.log(v1==v2);
console.log(v1===v2);
</script>
</body>
</html>

Number()函数将字符串转化为数字

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
var v1=100;
var v2="100";
console.log(typeof Number(v2));
console.log(Number("sss"));//NaN
console.log(typeof Number("sss"));
</script>
</body>
</html>

NaN与所有值都不相等,包括他自己

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
console.log(NaN==NaN);
console.log(NaN===NaN);
</script>
</body>
</html>

isNaN()判断是否为数字

isNaN(NaN);//true
isNaN(123);//false

isNaN()会隐式的将他们的参数换成数字,所以即便参数是个字符串,他会返回true(因为先调用Number()函数转换,然后对结果调用isNaN()调用

string

单引号和双引号都是string类型

undefined

已声明、未赋值的值,没有值的值,连数据类型都没有
1.

var test;
console.log(test);//undefined
function() f(x){
return x;
}
console.log(f());//undefined
function() f(x){
alert(x);//弹框
}
console.log(f(1));//undefined

null

空值

null与undefined

console.log(undefined==null);//true
console.log(undefined===null);//false
console.log(Number(null));//0
console.log(Number(undefined));//NaN
console.log(5+null);//5
console.log(5+undefined);//NaN

symbol

给变量创建一个全局唯一的值。属于基本数据类型

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
var a=Symbol("qq");
var b=Symbol("qq");
console.log(a==b);
console.log(a===b);
console.log(a.description);
</script>
</body>
</html>

description并不是Symbol的值,仅仅对值的描述,就像注释一样

for声明的是全局变量

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dem</title>
</head>
<body>
<script type="text/javascript">
var a=Symbol.for("qq");
var b=Symbol.for("qq");
console.log(a==b);
console.log(a===b);
console.log(a.description);
</script>
</body>
</html>

特征

值不可变
存放在栈中

html-7(JavaScript-1)的更多相关文章

  1. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能

    权声明:本文为博主原创文章,未经博主允许不得转载. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内.以及两点间的测距功能. 绘制多边形(蓝色) ...

  2. 前端性能优化(JavaScript篇)

    正巧看到在送书,于是乎找了找自己博客上记录过的一些东西来及其无耻的蹭书了~~~ 小广告:更多内容可以看我的博客 优化循环 如果现在有个一个data[]数组,需要对其进行遍历,应当怎么做?最简单的代码是 ...

  3. 学习Redis你必须了解的数据结构——双向链表(JavaScript实现)

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文链接 http://www.cnblogs.com/tdws/ 下午分享了JavaScript实现单向链表,晚上就来补充下双向链表吧.对链表 ...

  4. 【干货分享】前端面试知识点锦集03(JavaScript篇)——附答案

    三.JavaScript部分 1.谈谈你对Ajax的理解?(概念.特点.作用) AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是 ...

  5. 前端试题本(Javascript篇)

    JS1. 下面这个JS程序的输出是什么:JS2.下面的JS程序输出是什么:JS3.页面有一个按钮button id为 button1,通过原生的js如何禁用?JS4.页面有一个按钮button id为 ...

  6. 前端知识杂烩(Javascript篇)

    1. JavaScript是一门什么样的语言,它有什么特点?2.JavaScript的数据类型都有什么?3.请描述一下 cookies,sessionStorage 和 localStorage 的区 ...

  7. 十大经典排序算法总结(JavaScript描述)

    前言 读者自行尝试可以想看源码戳这,博主在github建了个库,读者可以Clone下来本地尝试.此博文配合源码体验更棒哦~~~ 个人博客:Damonare的个人博客 原文地址:十大经典算法总结 这世界 ...

  8. 【经验之谈】前端面试知识点总结03(JavaScript相关)——附答案

    目录 三.JavaScript部分 1.谈谈你对Ajax的理解?(概念.特点.作用) 2.说说你对延迟对象deferred的理解? 3.什么是跨域,如何实现跨域访问? 4.为什么要使用模板引擎? 5. ...

  9. 逆转序列的递归/尾递归(+destructuring assignment)实现(JavaScript + ES6)

    这里是用 JavaScript 做的逆转序列(数组/字符串)的递归/尾递归实现.另外还尝鲜用了一下 ES6 的destructuring assignment + spread operator 做了 ...

  10. 前端面试知识点集锦(JavaScript篇)

    目录 1.谈谈你对Ajax的理解?(概念.特点.作用) 2.说说你对延迟对象deferred的理解? 3.什么是跨域,如何实现跨域访问? 4.为什么要使用模板引擎? 5.JavaScript是一门什么 ...

随机推荐

  1. Java_Day16_作业

    A:简答题 1.请把我们讲解过的所有类中的方法在API中找到,并使用自己的话进行描述 答案: Map public V put(K key, V value): public void clear() ...

  2. 用git bash 生成 hexo 博客文件,报错node: command not found

    有git bash,也安装了node.js, 为什么在bash里面会说node: command not found? 电脑有段时间不能上网,下载了360系统急救箱,删了很多文件,包括一些exe文件, ...

  3. Python数据分析易错知识点归纳(二):Numpy

    二.numpy 不带括号的基本属性 arr.dtype arr.shape # 返回元组 arr.size arr.ndim # 维度 arr.reshape/arr.resize/np.resize ...

  4. 2023ccpc大学生程序设计竞赛-zx

    这次ccpc整体来说做题做的比较卡,第一个签到都wa了,后面几道中档题全都是至少wa一次才能过,这导致我们不仅罚时增加也导致需要大量时间修改代码,还有一个G题很可惜,当时只注意到B过题多所以有点被带歪 ...

  5. Oracle使用SQL截取某字符串

    很多小伙伴在使用Oracle的时候,想通过SQL来提取根据某一字符串截取来获得的字符串,他苦于对SQL不是很熟悉,但是现在你可以放心啦,现在先恭喜你找到了答案.因为在这里我已经为你写好了相关的函数以及 ...

  6. locust与jmeter测试过程及结果对比

    JMeter和Locust都是强大的性能测试工具,各自拥有自己的优势和专注领域.JMeter提供了全面的功能和基于GUI的界面,适用于复杂的场景和非技术人员.相比之下,Locust采用了以代码为中心的 ...

  7. MASABlazor在移动端点击保持出现悬停样式

    提出问题 最近在学习MAUIBlazor,用的MASA Blazor,发现在移动端(触屏设备)上,点击会一直显示悬停样式,如下图所示,简单研究了一下,发现这是移动端的通病. 解决问题 MASABlaz ...

  8. PerfView 洞察C#托管堆内存 "黑洞现象"

    一:背景 1. 讲故事 首先声明的是这个 黑洞 是我定义的术语,它是用来表示 内存吞噬 的一种现象,何为 内存吞噬,我们来看一张图. 从上面的 卦象图 来看,GCHeap 的 Allocated=85 ...

  9. 关于 ModelScope 的视频 “AI 换脸” 优化方案

    前言 前面一文,初步完成了一下 "AI 换脸" 视频处理程序.完成了视频拆帧,拆帧图片人脸融合,已经音频提取和最后的人脸融合图片的整合(也就是将图片和音频组成视频).但是在人脸融合 ...

  10. 部署安装zookeeper集群

    版本:3.7.0 节点IP: 172.50.13.103 172.50.13.104 172.50.13.105 获取安装包: wget http://mirrors.ustc.edu.cn/apac ...