<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jsDAY2</title>
</head>
<body>
<script>
//运算符
// 算数、递增递减、比较、逻辑、赋值、运算符优先级
// 加减乘除取余
console.log(1 + 1);//2
console.log(1 - 1);//0
console.log(1 / 1);//1
console.log(1 * 1);//1
console.log(4 % 2);//0
// 由于精度问题尽量别用浮点数进行运算
// 不能直接拿浮点数进行比较是否相等
// 能整除代表 取余数是0
// 先乘除再加减 有优先级
// 1+1就是表达式 返回值是2就是结果
console.log(1 + 1);//2
// 递增递减运算符
// ++a a++
// == 默认转换两个数值
console.log(10 == '10');//true
// 全等于 === 一模一样才行
console.log(10 === '10');//false
// 逻辑与或非 先与后或 注意短路原则
//&& 运算:如果表达式左边为真 则返回右边表达式 如果表达式左边为假 返回左边表达式
// || 或运算 如果第一个表达式为真 返回第一个 如果第一个表达式为假 返回第二个
console.log(123 && 456);//456
console.log(0 && 456);//0
// 流程控制 分支结构 顺序 分支 三元 分支流程
// 顺序 分支 循环
// 三元运算符
var result = 10 > 5 ? 'yes' : 'no';
console.log(result);
//如果表达式为真 则返回第一个表达式 如果为假 则返回第二个表达式
// default : 后面跟冒号
// switch必须是全等 break必须写 不然全都执行
// 打印n行n列的星星
var numb1 = prompt('请输入你想要的行');
var numb2 = prompt('请输入你想要的列');
var str = '⭐';
var sum = '';
for (var i = 1; i <= numb1; i++) {
for (var j = 1; j <= numb2; j++) {
console.log(str);
}
console.log('\n');
}
// 作业 打印99乘法表
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
result = i * j;
console.log(i + '×' + j + '=' + result);
}
console.log('\n');
}
// 输入密码
var name = 'admin';
var name1 = '';
while (name1 !== name) {
name1 = prompt('请输入您的用户名');
}
alert('123456');
// 100以内累加 但跳过3
var sum = 0;
for (var i = 0; i <= 100; i++) {
if (i === 3) { continue; }
sum += i;
}
console.log(sum);
// 创建数组
var arr = new Array();//创建空数组
var arr1 = [1, 2, 3, 4, 5, 6, 7, 8];//数组字面量创建
// 数组中可以放任意类型的变量
console.log(arr1);//输出全部数组
console.log(arr1[1]);//2
// 未定义的数组元素是undefined
// 遍历数组使用循环
// 数组长度 arr.length
var arr2 = [2, 6, 1, 77, 52, 25, 7, 99];
var max = 0;
for (var i = 0; i < arr2.length; i++) {
console.log(arr2[i]);
arr2[i] > max ? max = arr2[i] : max;
}
console.log(max);
// 数组转换为分割字符串
var arr3 = ['asdksf', 'sdiahiu', 'asidhad', 'asjduag', 'sakdag', 'bdyua'];
var str = '';
//var sep='!';
for (var i = 0; i < arr3.length; i++) {
str += arr3[i] + '|';// str += arr3[i] +sep;
}
console.log(str);
// 数组中新增元素
var arr4 = [1, 2, 3, 4];
console.log(arr4.length);//4
arr4.length = 8;
console.log(arr4);//1234empty*4;四个空位置 为undefined
// 新增数组元素修改索引号
var arr5 = [1, 2, 3, 4, 5];
console.log(arr5);//[1, 2, 3, 4, 5]
arr5[5] = '6';
console.log(arr5);//[1, 2, 3, 4, 5, '6'] 添加
arr5[0] = 'a';
console.log(arr5);//['a', 2, 3, 4, 5, '6'] 替换
arr5 = 'abc';
console.log(arr5);//abc 给整个数组赋值 则整个数组的值都改变
// 新建数组 存放1~10
//var arr6 = new Array();
var arr6 = [];
for (var i = 1; i <= 10; i++) {
arr6[i - 1] = i;//注意 不要写成arr[i]=i;数组下标和长度不同
}
console.log(arr6);
console.log(arr6.length);
// 筛选数组
var arr7 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr8 = [];
var jj = 0;
for (var i = 0; i < arr7.length; i++) {
if (arr7[i] >= 10) {
arr8[jj] = arr7[i];
jj++;
}
}
console.log(arr8);
// 方法2
var arr7 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr8 = [];// arr8.length=0
for (var i = 0; i < arr7.length; i++) {
if (arr7[i] >= 10) {
arr8[arr8.length] = arr7[i];
// 当arr8[0]=arr7[i]时 arr8.length自动变为1
}
}
console.log(arr8);
console.log('------------------');
//删除指定元素
var arr9 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr10 = []
for (var i = 0; i < arr9.length; i++) {
if (arr9[i] != 0) {
arr10[arr10.length] = arr9[i];
}
}
console.log(arr10);
//翻转数组
// var arr19 = ['red', 'green', 'b', 'p', 'pl'];
// var arr110 = []
// for (var i = 0; i < arr19.length; i++) {
// arr110[arr110.length] = arr19[arr19.length - 1 - i];
// }
// console.log(arr110);
console.log('------------------');
// 也可以反过来写
var arr19 = ['a', 'red', 'green', 'b', 'p', 'pl'];
var arr110 = []
for (var i = arr19.length - 1; i >= 0; i--) {
arr110[arr110.length] = arr19[i];
}
console.log(arr110);
console.log('------------------');
// 冒泡排序
console.log('------------------');
// 函数
function sayHi() {//创建函数
console.log('HI!!!!')
}
sayHi();//调用函数
console.log('--------求1-100累加和 利用函数');
function getSUM() {
var sum = 0;
for (var i = 0; i <= 100; i++) {
sum += i;
}
console.log(sum);
}
getSUM();
// function getSUM(形参1,形参2...)
// getSUM(实参1,实参2...)
console.log('利用函数求任意两个数最大值');
function getMax(n1, n2) {
return n1 > n2 ? n1 : n2;
}
console.log(getMax(1, 5));
console.log('利用函数求任意一个数组中的最大值');
var arr12 = [1, 4, 5, 2, 5, 76, 8, 2, 9]
function getArrMax(arr) {
var max = arr[0];
for (var i = 0; i <= arr.length; i++) {
max = arr[i] > max ? arr[i] : max;
}
return max;
}
console.log(getArrMax(arr12));
//用变量接受函数返回值更简单
// return下面的代码不会被执行 无return的函数返回值是undefined
// 一个数➕undefined是 NaN
// return只能返回一个值 多个值默认最后一个值 想返回多个值可以使用数组
function getResult(a, b) {
return [a + b, a - b, a * b, a / b];
}
console.log(getResult(36, 6));
// 只有函数才有内置的arguments
// 当不知道要传入多少个参数的时候可以使用arguments
function fn() {
console.log(arguments);
console.log(arguments.length);
console.log(arguments[2]);
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);//同样可以遍历数组
}
}
fn(1, 2, 3);
fn(1, 2, 3, 4, 5);
// arguments是伪数组,具有部分数组属性
// 1.具有数组length属性
// 2.按照索引方式存储
// 3.没有真正数组的一些方法pop() push()等等
console.log('利用函数求任意个数最大值');
function fn1() {
var max = arguments[0];
for (var i = 0; i < arguments.length; i++) {
max = max > arguments[i] ? max : arguments[i];
}
return max;
}
console.log(fn1(1, 2, 3, 3454, 7, 2, 5, 6));
console.log('利用函数翻转数组');
arr13 = [1, 2, 3, 4, 5]
function reverse(arr) {
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i];
}
return newArr;
}
console.log(reverse(arr13));
var arr22 = reverse(['a', 'b', 'c']);
console.log(arr22);
console.log('利用函数冒泡排序');
var arr23 = [5, 3, 2, 1, 4];
function px(arr) {
for (var j = 0; j <= arr.length - 1; j++) {
for (var i = 0; i < arr.length - 1 - j; i++) {
if (arr[i] > arr[i + 1]) {
var temp = 0;
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
return arr;
}
var arr24 = px(arr23);
console.log(arr24);
console.log('利用函数判断闰年');
function isRunYear(year) {
var flag = false;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
flag = true;
}
return flag;
}
console.log(isRunYear(2000));
// 函数调用函数
// var fun=function(){};匿名函数 fun是变量名不是函数名
// fun();函数表达式
// 常规是命名函数 关键字函数
// 作用域就是代码名字(变量)在某个区域起作用的
// 多利用作用域可以减少命名冲突
// js的作用域(es6版本)之前:全局作用域 局部作用域
// 全局作用域:整个script标签 或者是一个单独的js文件
var num = 10;
var nm = 30;
console.log(num);
// 局部作用域(函数作用域)在函数内部就是局部作用域 代码的名字只会在函数内部起作用
function fn() {
//局部作用域
var num = 20;
console.log(num);
}
fn();
console.log('------------------');
// 函数内部没有声明但是赋值的变量是全局变量
// 函数形参是局部
// 全局关闭浏览器才会销毁 耗费内存
// 局部变量局部程序运行完就会销毁
// 预解析 function var 声明提前
// 作用域链遵循就近原则
// 对象字面量 构造函数创建对象 new 遍历对象
// 对象是一个具体的事物 泛指不算
// 对象 (后面这些没写代码。。一是因为有基础 二是因为不想写了 进度很慢 有时间再弄吧)
</script>
</body>
</html>
黑马pink老师前端零基础自学jsDay2(从运算符~对象)
最新推荐文章于 2024-08-14 20:13:10 发布