放在函数里面

<!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. 极速安装kubernetes-1.22.0(三台CentOS7服务器)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于sealos 标题敢号称极速,是因为使用了开源项目 ...

  2. SAS - PROC FCMP

    PROC FCMP 概述 PROC FCMP 可用于自定义函数(funcion)和子程序(subroutines).自定义函数和子程序的名称的最大长度为 32,长度超过 32 的名称虽然可以定义,但无 ...

  3. TrustZone——(一)

    本文内容主要来源于网络,综合了网上的多篇文章,也加入了一些自己的理解,重新组织了文章结构使其便于理解. 主要参考的文章包括: 一篇了解TrustZone TrustZone领域先行者 TrustZon ...

  4. UE构建基础和实践:四、使用脚本打包

    序言 使用UE版本为UE5.20 在实际项目中,我们常常使用自动化脚本来进行构建,它可以增加我们的生产效率,并降低人为操作带来的失误风险. BuildGraph BuildGraph UE官方提供的构 ...

  5. js 关于 replace 取值、替换第几个匹配项(两种方式:正则、普通字符串操作)

    〇.前言 在日常开发中,经常遇到针对字符串的替换.截取,知识点比较碎容易混淆,特此总结一下,仅供参考. 一.替换第一个匹配项 字符串替换 let strtest = "0123测试repla ...

  6. P1880 [NOI1995] 石子合并 题解

    区间DP. 首先将其复制一遍(因为是环),也就是经典的破环成链. 设 \(f[i][j]\) 表示将 \(i\) 到 \(j\) 段的石子合并需要的次数. 有 \[f[i][j] = 0(i = j) ...

  7. 一文了解react中定义样式(css/less/sass)的常用方法

    react中通过jsx的语法方式,将html标签和js语法联系在一起,而css的编写方式,没有明确的指定编写方式,目前就有很多不同方法,每个方式各有其优缺点,我们一起来看看常用的定义方式有哪些. 最基 ...

  8. DirtyCow 脏牛提权漏洞(CVE-2016-5195)

    描述: 该漏洞是 Linux 内核经典漏洞,内核内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞, 导致可以破坏私有只读内存映射.黑客可以在获取低权限的的本地用户后,利用此漏洞 ...

  9. Strategy Pattern and Polymorphism —— Behavioral Class

    策略模式着重于封装和替换 不同的算法或行为,以便在运行时进行选择. Simple example - Computer and USB interface 现代人对计算机.USB接口还有各种设备之间的 ...

  10. Java 设计模式实战系列—单例模式

    本文首发公众号:小码A梦 单例模式是设计模式中最简单一个设计模式,该模式属于创建型模式,它提供了一种创建实例的最佳方式. 单例模式的定义也比较简单:一个类只能允许创建一个对象或者实例,那么这个类就是单 ...