Day03ループ
-
ために
-
ダブル
-
一方
-
一方を行います
-
休憩を続ける
forループはさまざまなコードを実行します
カウンター変数iがあります
for(var i = 1; i <100; i ++){
console.log( 'この人は今年です' + i + '歳');
}
プロンプトによってフェッチされるデータは文字列型であり、通常使用するにはデジタル型に変換する必要があります。
XOR半加算
1つのデータが別のデータと2回XORされ、最終結果はこのデータのままであり、式は
a ^ b ^ b = aです。
whileループはforよりも柔軟性があります
場合:
var message = prompt('do you love me?');
while (message !== 'i love you') {
message = prompt('do you love me?');
}
alert('i love you too honey!');
継続する
このサイクルから飛び出して、次のサイクルに進みます
Day04配列
配列を作成する2つの方法
1.new
var array name = new Array();
var arr = new Array();
2.デジタルリテラルを使用して作成する
Var arrayname = [];
配列内のデータはコンマで区切られます
var array = [1,2、 'kafuka Teacher'、true];
インデックス番号は0から始まります。
配列全体を出力します:console.log(arry1);
配列トラバーサル:for var k inloopまたはpurefor loop
配列の長さ:arr.length、動的、配列要素の数によって変化する可能性があります
配列名に直接値を割り当てないでください。そうしないと、配列の元の要素がすべて上書きされます。
var newArry = [];
for (var i = 0;i < 10;i++){
newArry[newArry.length] = i;
}
配列を文字列に変換する
var arytest = ['red','green','blue','pink'];
var strtest = '';
//设置一个空字符串使用隐式转换
var sep = '';
for (var i = 0; i < arytest.length;i++){
strtest += arytest[i] + sep;
}
console.log(strtest);
//运行结果: "redgreenbluepink"
バブルソート
原則:バブルソートは、隣接する2つの要素のサイズを比較し、Nラウンドを比較します。各ラウンドで、このラウンドの最大数をこのラウンドの最後にランク付けできます。これは安定したソートアルゴリズムです。
バブルソートアルゴリズムの原理は次のとおりです。
- 隣接する要素を比較します。最初のものが2番目のものよりも大きい場合は、2つを交換します。
- 最初の最初のペアから最後の最後のペアまで、上記の手順を繰り返します。終了後、最後の要素はこの数字のセットの中で最大の数字です。
- 最後の要素を除いて、上記の手順を繰り返します。
- 比較する数値のペアがなくなるまで、毎回、要素の数を減らして上記の手順を繰り返します。
c言語バージョン:
#include <stdio.h>
#define ARR_LEN 255 /*数组长度上限*/
#define elemType int /*元素类型*/
/* 冒泡排序 */
/* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 */
/* 2. 对所有元素均重复以上步骤,直至最后一个元素 */
/* elemType arr[]: 排序目标数组; int len: 元素个数 */
void bubbleSort (elemType arr[], int len) {
elemType temp;
int i, j;
for (i=0; i<len-1; i++)
/* 外循环为排序趟数,len个数进行len-1趟 */
for (j=0; j<len-1-i; j++) {
/* 内循环为每趟比较的次数,第i趟比较len-i次 */
if (arr[j] > arr[j+1]) {
/* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */
/*如果不是逆序,则不交换,保持原状,
下一个对比的数字就不再是本轮循环中的起始的那个数字*/
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
int main (void) {
elemType arr[ARR_LEN] = {
3,5,1,-7,4,9,-6,8,10,4};
int len = 10;
int i;
bubbleSort (arr, len);
for (i=0; i<len; i++)
printf ("%d\t", arr[i]);
putchar ('\n');
return 0;
}
JS:
function bubbleSort(arr) {
var i = arr.length, j;//i为数字长度,j为数组下标
var tempExchangVal;//中转数字
while (i > 0) {
for (j = 0; j < i - 1; j++) {
if (arr[j] > arr[j + 1]) {
tempExchangVal = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tempExchangVal;
}
}
i--;//重复n轮 n = i-1
}
return arr;
}
var arr = [3, 2, 4, 9, 1, 5, 7, 6, 8];
var arrSorted = bubbleSort(arr);
console.log(arrSorted);
alert(arrSorted);
Day05機能
一貫性のない正式なパラメータと実際のパラメータ
1実際のパラメーターが多数ある場合、正式なパラメーターは少数しか受け入れず、余分なパラメーターを破棄できます
2実際のパラメーターはほとんどなく、仮パラメーターは宣言する必要のない変数と見なすことができ、デフォルトは未定義です。
任意の数と未定義はNaNです。出力結果は予測不可能であり、可能な限り一致する必要があります。
要約を返す
復帰後の機能は実行されません。
returnは1つの値のみを返すことができます。戻り後の最後の値を返します。
複数の結果を同時に出力したい場合は、複数の結果を配列に入れて、この配列を出力してください。その結果、配列が処理されます。
関数が返されない場合は、undefinedを返します。
戻り値:1。ループを終了します。2。現在の関数本体のコードを終了します。他に何も実行されません。3。戻り値を返します。
引数
渡されるパラメーターの数がわからない場合は、引数を使用してパラメーターを取得してください。
疑似配列に
は長さ
とインデックスがあります
pop();、 push();など、実数配列のない一部のメソッドに
は引数オブジェクトのみがあり、それらはすでに組み込まれています。
例:
function getMax(){
var max = arguments[0];
for (var i = 1;i < arguments.length;i++){
if (max < arguments[i]){
max = arguments[i];
}
}
return max;
}
console.log(getMax(11,11,234,6346));
console.log(getMax(9,11,23238954,6343425356));
console.log(getMax(3458395,11,2334,67364655,2359,38));
関数を使用してうるう年を決定する
うるう年の条件:1回のうるう年で4年間、うるう年なしで100年間、もう1回のうるう年で400年。
function isLeapYear(year) {
var flag = false;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
flag = true;
}
return flag;
}
if (isLeapYear(2000)){
console.log('is leap year!');
}else {
console.log('is not.');
}
関数宣言メソッド
1関数キーワードカスタム関数(名前付き関数)
関数fn(){ } fn();
2.関数式(無名関数)
関数には名前がありません
var fun = function(aru){ console.log(aru); }
ここでの楽しみは、関数の名前ではなく変数の名前です
が、この変数の名前には、次の
ようなパラメーターを渡すことができます。fun(123);